- 1.all()和 any()函数
- 2. range()函数
- 3. map() 函数
- 4. filter() 函数
- 5. reduce 函数
- 6. zip() 函数
- 7. reversed()函数和 sorted() 函数
all()函数一般针对组合数据类型。如果函数中每个元素都是 True ,则返回 True;否则返回 False 。
需要注意的是,整数0、空字符串、空列表等都被当作 False 。
any()函数与 all()函数相反,只要组合数据类型中任何一个元素是 True ,则返回 True ,全部元素都是 False 时,返回 False 。
例 6-24 all()和 any()函数的应用:
>>> all([1,2]) #列表中每个元素逻辑值均为 True ,返回 True True >>> all([0,1,2]) #列表中元素0的逻辑值为 False ,返回 False False >>> all(()) #空元组 True >>> all({}) #空字典 True >>> any([0,1,2]) #列表元素有一个为 True ,则返回 True True >>> any([0,0]) #列表元素全部为 False ,则返回 False False >>> any([]) #空列表 False2. range()函数
range()函数用于创建一个整数列表,多用于 for 循环中
语法:
range(start,stop[,step])
其中, start 表示计数开始,默认值为0, stop 表示计数结束(不包含 stop ), step 表示步长,默认值为1。
例 6-25 range()函数的应用:
>>> r1 = range() #从开始到9 Traceback (most recent call last): File "3. map() 函数", line 1, in r1 = range() #从开始到9 TypeError: range expected 1 arguments, got 0 >>> r1 = range(10) #从开始到9 >>> print(list(r1)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> r2 = range(1,11) #从1开始到10 >>> print(list(r2)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> r3 = range(0,10,3) #步长为3 >>> print(list(r3)) [0, 3, 6, 9] >>> r4 = range(0,-10,-1) #步长为负数 >>> print(list(r4)) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] >>> type(r4) #range类型
map()函数用于将指定序列中的所有元素作为参数,通过指定函数,将结果构成一个新的序列返回。
语法:
map(function,iter1[,iter2,···])
map()函数的参数可以有多个序列,序列个数由映射函数 function 的参数个数决定。
简单地说就是根据指定映射函数对多个参数序列进行运算,从而形成新的序列。
例 6-26 map() 函数的应用:
>>> m1 = map(lambda x,y:x*y,[3,4,5],[4,5,6]) >>> type(m1)>>> print(m1)
例 6-27 map() 函数的应用:
>>> def fact(n): t = 1 for i in range(1,n+1): t=t*i return t >>> m2 = map(fact,(3,4,5,6)) >>> print(list(m2)) [6, 24, 120, 720]4. filter() 函数
filter()函数会对指定序列执行过滤 *** 作。
语法:
filter(function,iter)
其中:
- 第一个参数 function 是用于过滤的函数名称,该函数只能接收一个参数,且该函数的返回值为布尔值;
- 第二个参数是列表、元组或字符串等序列类型。
filter ()函数的作用是将序列参数中的每个元素分别调用 function 函数,并返回执行结果为 True 的元素。
例 6-28 filter() 函数的应用:
>>> # filter ()函数第一个参数是vowel()函数,筛选含有元音字符的单词 >>> def vowel(word): if word.find('a')>=0 or word.find('e')>=0 or word.find('i')>=0 or word.find('o')>=0 or word.find('u')>=0: return word >>> f2 = filter(vowel,["python","php","java","c++","html"]) >>> print(list(f2)) ['python', 'java']5. reduce 函数
reduce()函数用于将指定序列中的所有元素作为参数,并按一定的规则调用指定函数。
语法:
reduce(function,iter)
其中, function 是映射函数,必须有两个参数。 reduce()函数首先以序列 iter 的第1个和第2个元素为参数调用映射函数,然后将返回结果与序列的第3个元素为参数调用映射函数,依此类推,直至应用到序列的最后一个元素,才将计算结果作为 reduce ()函数的返回结果。
需要说明的是,自 Python 3以后, reduce ()函数就不再是 Python 的内置函数了,用户需要从 functools 模块中导人后才能调用 reduce ()函数。
例 6-29 reduce() 函数的应用:
>>> from functools import reduce >>> r1 = reduce(lambda x,y:x+y,(1,2,3,4,5)) >>> print(r1) 15 >>> #reduced()函数的第3个参数设置初值10000 >>> r2 = reduce(lambda x,y:x+y,(1,2,3,4,5),10000) >>> print(r2) 10015 >>> #基于整数列表生成整数数值 >>> r3 = reduce(lambda x,y:x*10+y,[1,2,3,4,5]) >>> print(r3) 123456. zip() 函数
zip()函数以一个或多个序列作为参数,将序列中的元素打包成多个元组,并返回由这些元组组成的列表。
语法:
zip(iter1[,iter2,···])
例 6-30 zip() 函数的应用:
>>> #由一个列表生成的元组 >>> z1 = zip([1,3,5]) >>> print(list(z1)) [(1,), (3,), (5,)] >>> #由两个列表生成的元组,参数是列表 >>> z2 = zip([1,3,5],[2,4,6]) >>> print(list(z2)) [(1, 2), (3, 4), (5, 6)] >>> #由三个列表生成的元组,参数是元组 >>> z3 = zip((1,3,5),(2,4,6),('a','b','c')) >>> print(list(z3)) [(1, 2, 'a'), (3, 4, 'b'), (5, 6, 'c')] >>> #由不同长度序列生成的元组,返回列表长度与最短列表相同 >>> z4 =zip([1,3,5,7],[2,4,6],['a','b','c']) >>> print(list(z4)) [(1, 2, 'a'), (3, 4, 'b'), (5, 6, 'c')] >>> type(z1)7. reversed()函数和 sorted() 函数
reversed ()函数用于反转序列,生成新的可迭代对象; sorted ()函数对可迭代对象进行排序,返回一个新的列表。
例 6-31 reversed() 函数的应用:
>>> r1 = range(10) >>> r2 = reversed(r1) #r2是反转的可迭代对象 >>> type(r2)>>> list(r2) [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
sorted()函数接受3个参数,返回一个排序之后的 list 。
语法:
sorted(iterable, key=None, reverse=False)
- iterable – 可迭代对象。
- key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
例 6-32 sorted() 函数的应用:
>>> str1 = ['a','b','d','c','B','A'] >>> #默认按字符的ASCII码排序 >>> sorted(str1) ['A', 'B', 'a', 'b', 'c', 'd'] >>> #转换成小写字母后再排序 >>> sorted(str1,key=str.lower) ['a', 'A', 'b', 'B', 'c', 'd'] >>> sorted(str1,reverse=True,key=str.lower) ['d', 'c', 'b', 'B', 'a', 'A']
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)