python 3 zip的多种使用方式

2025-05-05 23:52:01

1、zip是builtin函数,无需任何引用,简单的使用方法如图所示。zip从两个可迭代对象生成一个迭代器。对zip对象进行list转换,可得到元组列表。

python 3 zip的多种使用方式

2、zip不仅可以从两个可迭代对象生成,也可以从多个可迭代对象生成。如图是zip三个列表的效果。zip1和zip2写法等价。

python 3 zip的多种使用方式

3、当多个可迭代对象返回个数不同时,比如多个列表长度不同,可迭代对象会终止于最先终止的那个。如图,zip以后按照最短l3的长度。

python 3 zip的多种使用方式

4、如果我们希望zip按照最长的那个可迭代对象终止,并用None或指定值填充缺失值,那么要使用itertools里的zip_longest。

python 3 zip的多种使用方式

5、注意,zip返回的是可迭代对象,当我们使用list对其转换以后,它就迭代结束了。因此如图所示,后面两次print为空。

python 3 zip的多种使用方式

6、zip接受的是iterable可迭代对象,zip返回的是zip对象,但是也是可迭代对象。因此,多个zip可以嵌套组合,如图。

python 3 zip的多种使用方式

7、如果我们可以将zip对象转为list后的列表展开,实际上得到了元素交替合并的列表。这一展开函数为itertools.chain.from_iterable。因为某些原因,python中没有展开任意层的函数。这一问题有人讨论:Why doesn't Python have a "flatten" function for lists.

python 3 zip的多种使用方式
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢