我是靠谱客的博主 阳光夏天,最近开发中收集的这篇文章主要介绍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 "<pyshell#7>", line 1, in <module>
    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类型
<class '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)
<class 'map'>
>>> print(m1)
<map object at 0x0000029D331F9FD0>
>>> 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)
<class 'zip'>

7. reversed()函数和 sorted() 函数

reversed ()函数用于反转序列,生成新的可迭代对象; sorted ()函数对可迭代对象进行排序,返回一个新的列表。

例 6-31 reversed() 函数的应用:

>>> r1 = range(10)
>>> r2 = reversed(r1)	#r2是反转的可迭代对象
>>> type(r2)
<class 'range_iterator'>
>>> 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']

最后

以上就是阳光夏天为你收集整理的Python——序列操作函数的全部内容,希望文章能够帮你解决Python——序列操作函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部