Python模块---zip打包元素为元组

2019-01-24  本文已影响7人  吾星喵

zip打包元素为元组

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

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

利用 * 号操作符,与zip相反,进行解压。

Python3中返回的是一个对象,如果想要得到列表,可以用 list() 函数进行转换。

打包

a = [1, 2, 3]
b1 = [4, 5, 6]
b2 = [4, 5, 6, 7, 8]

a1 = zip(a)
print(a1, list(a1))  # <zip object at 0x0000021D11AAC788> [(1,), (2,), (3,)]

ab1 = zip(a, b1)
print(ab1, list(ab1))  # <zip object at 0x000002952D1FB848> [(1, 4), (2, 5), (3, 6)]

ab2 = zip(a, b2)  # 元素数量不同,按少的计算
print(ab2, list(ab2))  # <zip object at 0x00000247020FB948> [(1, 4), (2, 5), (3, 6)]

解包

*zip()函数是zip()函数的逆过程,将zip对象变成原先组合前的数据。

z1 = zip(*zip(a, b1))  # 解压
print(z1, list(z1))  # <zip object at 0x000001EC4464C988> [(1, 2, 3), (4, 5, 6)]


z = [(1, 2, 3), ('a', 'b', 'c'), (4, 5, 6)]
print(list(zip(*z)))  # [(1, 'a', 4), (2, 'b', 5), (3, 'c', 6)]
上一篇 下一篇

猜你喜欢

热点阅读