lambda表达式
list(filter(lambda x:True if x % 3 == 0 else False, range(100)))使用lambda表达式定义了一个匿名函数,用于筛选100以内的3的倍数,并生成一个列表。
filter():简单的理解为过滤器,需要两个参数,function,和一个序列(字符串、列表、元组都是序列),过滤器会依次将序列的值传入function中,如果返回True的话,将其重新生成一个列表返回。
list(filter(lambda x:True if x % 3 == 0 else False, range(100)))
zip():字面意思理解,就是zip打包,可以将多个序列进行打包,它会将序列拆分,然后把第一个序列和第二个序列的元素依次组成元组,2个一组组合成列表。
不过要注意的是,这是以最短序列来组合的,就是说如果一个序列比较长,一个比较短的话,组合只会进行到断序列的最后一个元素,多余的部分会被抛弃
str1 = "abcde"
>>> str2 = "abcdefg"
>>> list(zip(str1, str2))
[('a', 'a'), ('b', 'b'), ('c', 'c'), ('d', 'd'), ('e', 'e')]
map():映射,用法和filter()类似,也是将序列放入函数进行运算,但是,不论运算结果为什么,map()都将忠实反馈,这是map()和filter()的主要区别。请注意,filter()和map()中的function都必要有一个返回值。
list(map(lambda x:True if x % 3 == 0 else False, range(100)))
感觉第一个例子也可以这样写:list(filter(lambda x:not(x % 3), range(100))){:5_109:}
页:
[1]