【Python 技巧】使用 zip() 函数对序列进行压缩和解压操作

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。

利用 * 号操作符,可以将元组解压为列表。

zip() 函数基本语法:zip([iterable, ...]),iterable 表示一个或多个迭代对象,可以是字符串,列表,元组或字典。

应用举例:

>>> a = [1, 2, 3, 4, 5]     # 在列表中的应用
>>> b = [3, 4, 5, 6, 7]
>>> c = [5, 6, 7, 8, 9]
>>> zipped = zip(a, b, c)
>>> zipped
<zip object at 0x0000018AA4DCFF08>     # 返回一个 zip 对象
>>> list(zipped)
[(1, 3, 5), (2, 4, 6), (3, 5, 7), (4, 6, 8), (5, 7, 9)]    # 使用 list() 函数将其转换为列表

>>> z = zip(*zip(a, b, c))     # 解压操作
>>> z
<zip object at 0x0000018AA4DD50C8>
>>> list(z)
[(1, 2, 3, 4, 5), (3, 4, 5, 6, 7), (5, 6, 7, 8, 9)]
>>> a = {'a':1, 'b':2, 'c':3}     # 在字典中的应用
>>> b = {'d':4, 'e':5, 'f':6}
>>> c = {'g':7, 'h':8, 'i':9}
>>> zipped = zip(a, b, c)
>>> list(zipped)
[('a', 'd', 'g'), ('b', 'e', 'h'), ('c', 'f', 'i')]

>>> z = zip(*zip(a, b, c))
>>> list(z)
[('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i')]
发布了149 篇原创文章 · 获赞 518 · 访问量 46万+

猜你喜欢

转载自blog.csdn.net/qq_36759224/article/details/104420539