在Python中迭代序列时,有一些函数非常好用。有些函数位于itertools模块中,还有一些Python的内建函数十分方便
1.并行迭代
程序可以同时迭代两个序列。比如有下面两个列表:
如果想要打印名字和对应的年龄,可以像下面这样做:
这里的i是循环索引的标准变量名。
而内建的zip函数就可以用来进行并行迭代,可以把两个序列压缩在一起,然后返回一个元组的列表:
现在我可以在循环中解包元组:
zip函数也可以作用于任意多的序列。关于它很重要的一点是zip可以处理不等长的序列,当最短的序列用完的时候就会停止:
2.翻转和排序迭代
让我们看看另外两个有用的函数:reversed和sorted。他们同列表的reverse和sort方法类似,但是作用于任何序列可迭代对象上,不是原地修改对象,而是返回翻转或者排序后的版本:
虽然sorted方法返回列表,reversed方法却返回一个更加不可思议的可迭代对象。它们具体的含义不用过多关注,大可在for循环以及join方法中使用,而不会有任何问题。不过却不能直接对他使用索引,分片以及调用list方法,如果希望进行上述处理,那么可以使用list类型转换返回的对象。