python zip 打包、拆包(将2个列表打包,将一个列表拆包)

语法

zip([iterable, ...])

参数说明:

  • iterable — 一个或多个迭代器;

返回值:列表,其元素是元组类型

打包

将两个list进行打包

a = ['李雷','韩梅梅','lucy','lili']
b = [1,2,3,4]

res = zip(a,b)     # 打包为元组的列表

执行结果:

[('李雷',1), ('韩梅梅',2), ('lucy',3),('lili',4) ]

元素数量不同

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

res2 = zip(a,b)              # 元素个数与最短的列表一致

执行结果:

[(1, 4), (2, 5), (3, 6)]

拆包

当一个list,其元素是 tuple 或 list,元素个数相同时,可以进行拆包

d = [(1, 4), (2, 5), (3, 6)]
res = zip(*d)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
print(res)

执行结果:

[(1, 2, 3), (4, 5, 6)]

分别取出各个返回值

d = [(1, 4), (2, 5), (3, 6)]

res1,res2 = zip(*d)
print(res1)
print(res2)

执行结果:

(1, 2, 3)
(4, 5, 6)

参考:
https://www.runoob.com/python/python-func-zip.html


原文出处:/show_1IX7RuaPtcdw.html