Python——序列 *** 作函数

Python——序列 *** 作函数,第1张

Python——序列 *** 作函数

序列 *** 作函数
      • 1.all()和 any()函数
      • 2. range()函数
      • 3. map() 函数
      • 4. filter() 函数
      • 5. reduce 函数
      • 6. zip() 函数
      • 7. reversed()函数和 sorted() 函数

函数名功能说明all()判断可迭代对象的每个元素是否都为 True 值any()判断可迭代对象的元家是否有为 True 值的元素range()产生一个序列,默认从0开始map()使用指定方法去 *** 作传入的每个可选代对象的元素,生成新的可迭代对象filter()使用指定方法过滤可迭代对象的元素reduce()使用指定方法累积可迭代对象的元素zip()聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型选代器sorted()对可选代对象进行排序,返回一个新的列表reversed()反转序列生成新的可选代对象 1.all()和 any()函数

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([])	#空列表
False
2. 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 "", 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类型

3. map() 函数

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)

>>> print(list(m1))
[12, 20, 30]

例 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)
12345
6. 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']

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5657561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存