Q:什么是lambda函数?它有什么好处?

A:lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数,它一般很短并且没有函数名。

     1、lambda函数比较轻便,即用即扔,很适合需要完成一次性的功能,连名字都不需要起;

     2、匿名函数,一般用于filter(),map()等接收函数作为参数的函数;

     3、作为回调函数,传递给某些应用,比如消息处理。

 

python官方文档原文:https://docs.python.org/3/reference/ s.html?highlight=lambda#grammar-token-lambda-expr

 

Q:filter()、map()、reduce()函数的区别和作用?

A:

filter() 函数:

用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。

该接收两个参数,第一个为函数,第二个为序列,函数即是用于过滤的条件,返回值是布尔值。序列的每个元素作为参数传递给函数进行判,然后根据返回值将返回 True 的元素放到新列表中。

map() 函数:

会根据提供的函数对指定序列做映射处理,相当于对每个元素都调用一次该函数。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

适合于使用重复操作批量处理数据。

reduce() 函数:

对参数序列中元素进行累积,用于数学中的累加/累乘或者类似的累计操作。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第3个数据用 function 函数运算,以此类推,直到最后一个数据参与运算得到结果。

对于一个列表只会返回最后得到的累计结果。

(在 Python3 中,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在 fucntools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数)

 

python官方文档原文:https://docs.python.org/3/library/functions.html

 

Q:xrange()函数和range()函数的区别?

A:xrange() 函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器。

生成器是迭代器的一种。

range() 函数用法:以给出的范围创建一个整数列表,一般用在 for 循环中。有两个参数和一个可选参数,分别是开始、结尾和跳步数

python官方文档原文:https://docs.python.org/3/reference/ s.html?highlight=generator#grammar-token-generator-

 

 

 

 

收藏 打印