与序列相关的一些函数

(1)列表、元组和字符串相互转换

list()、tuple()、str()

(2)min()、max()

如果传入的是空的可迭代对象,可会抛出错误,可以修改default:

(3)len()、sum()

len()求一个可迭代对象的长度,有可承受范围,有上限

sum()对容器内对象进行求和,sum的语法格式为:sum(iterable[,start])

◆ iterable:指的是可迭代对象,比如列表,元组,集合。
◆ star:是指定的可选参数,若没有指定,默认为0。
也就是说: sum=可迭代对象的值的总和+指定的start的值

需要注意的是,sum()内不可以为整数,而且代码内不可以存在以sum命名的变量,否则会出现错误,比如以下:

(4)sorted()、reversed()

sorted()函数与列表中sort函数用法基本一致,语法结构为:sorted(iterable, key, reverse) 不同的是,sorted可以对字符串等可迭代对象进行排序,并以列表的形式返回一个全新的对象,对原对象不产生影响。而列表的sort()方法是对原对象进行更改排序。

sorted()中的关键字key可以指定规则进行排序,比如默认情况下是按照字符串的第一个字母进行排序,如果指定key=len,就会按照字符串的长度进行排序:

reversed()函数返回的是一个参数的反向迭代器

(5)all()、any()

all()判断可迭代对象中是否所有元素的值都为真;可迭代对象为空时也为真

any()函数是判断可迭代对象中是否有某一个元素的值为真:

(6)enumerate()

语法结构为:enumerate(iterable,start)

由于start默认为0,所以二元组的序号是从0开始,我们可以人为的规定序号:

(7)zip()

如两个列表:

fruits = ['Banana', 'pear', 'orange', 'peach', 'grape']
s = [0, 1, 1]

易知,zip()函数以最短的可迭代对象为基准,多余的会丢掉,如果不想丢掉,就要使用另一个模块:

fruits = ['Banana', 'pear', 'orange', 'peach', 'grape']
s = [1, 2, 3, 4]
t = ['x', 'y', 'z']
import itertools
zipped = itertools.zip_longest(t,s,fruits)

用列表展开zipped,得到结果:

(8)map()

语法结构为map(func, *iterables),第一个参数是指定函数计算。第二个参数是要计算的可迭代对象。

如想求一个字符串里的各字符的unicode编码:

比如计算2的平方、3的平方、5的3次方:

如果提供的多个可迭代对象参数长度不一致,则会在最短的可迭代对象结束时终止操作,如以上求值:

(9)filter()

语法结构为:filter(function or None, iterable)

(10)迭代器 可迭代对象 iter()函数

一个迭代器肯定是一个可迭代对象;

可迭代对象可以重复使用,而迭代器则是一次性的;

如迭代器mapped:

进行遍历之后:

进行遍历(使用)之后,mapped就已经为空了,所以它是一次性的,

而可迭代对象,如s = [1, 2, 3, 4],进行遍历后,它其中的元素还是存在的:

不过一个可迭代对象可以变成一个迭代器,需要借用iter()函数:

可以借用next()函数将迭代器中的元素一个一个提取出来(按顺序提取,且每个元素智能提取一次,当没有元素提取时,会抛出异常),以上图列表迭代器y为例(y中的元素与s相同,为1,2,3 4):

也可以再给next()一个参数,不让他抛出异常:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值