这部分的内容不仅仅是用于列表,一般来说其他的序列(比如元祖、字典、集合等)也是可以进行使用的。
(1)any(list):列表list中有一个元素为逻辑真,则返回True,全为假时则返回False。注意any([])返回的是False,在编程时要考虑序列为空的情况。
(2)all(list):列表在所有元素都为真时则返回True,否则返回False。注意all([])返回的是True,在编程时要考虑序列为空的情况。
(3)max(list)或min(list):返回列表list中的最大值或最小值。
(4) enumerate():在列表中循环遍历索引和元素,例:
list = [i for i in 'abcdefg']
for index,value in enumerate(list):
print(index,value)
返回值:
0 a
1 b
2 c
3 d
4 e
5 f
6 g
(5)求和sum函数:
print(sum([1,2,3,4]))
返回值10
(6)筛选函数filter(function,sequence):对sequence进行筛选,满足条件的返回给迭代器,function的返回值只能是True或False。
例子:找出1-22之间技能被2整除也可以被3整除的数
print(list(filter(lambda x: x % 2 == 0 and x % 3 == 0,range(1,23))))
返回值[6, 12, 18]
(7)map(function,sequence):把sequence中的每一个元素执行function操作,将结果通过迭代器返回。
例子,返回1-10的立方值。
print(list(map(lambda x:x**3,range(1,11))))
返回值如下:
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
另外,map也支持多个sequence,这就要求function也支持相应数量的参数输入:
#(1到9的数字,步长为2)+(1到4的值,步长为1)
from operator import addprint(list(map(add,range(1,10,2),range(1,5))))
返回值如下:
[2, 5, 8, 11]
当两边的数据数量一致时,返回数量为该数量;当两边数量不一致时,返回结果取数量较低值。
(8)reduce(functiong,list[,init]):如果提供了init参数,第一轮将init和list[0]用function进行处理,得到的结果和list[1]在经过function函数处理,以此类推,知道结束:如果不提供init参数,则第一轮处理直接从list中取出两个元素(list[0]和list[1])用function函数进行处理。
from functools import reduce
from operator import add
print(reduce(add,range(1,11)))
print("加入init")
print(reduce(add,range(1,11),20))
结果如下:
55
加入init
75