一张图展示zip的工作原理:
举例:
L1 = [1,2,3,4,5]
L2 = ['a','b','c','d','e']
zip_L1L2 = zip(L1,L2)
print(zip_L1L2)
# Sample Output
<zip object at 0x7f92f44d5550>
直接输出zip是看不到具体的tuple的,可以通过转为list的方式查看:
print(list(zip_L1L2))
# Output
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')]
或者对于嵌套的list, 先用*星号将嵌套list展开:
L = [[1,2,3,4,5],['a','b','c','d','e']]
print(list(zip(*L)))
如果L1和L2的长度不一样呢?
当L1有五个元素,而L2中只有4个元素时,zip后的结果只包含四个元素:
L1 = [1,2,3,4,5]
L2 = ['a','b','c','d']
zip_L1L2 = zip(L1,L2)
print(list(zip_L1L2))
# Output
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
把tuple元组展开为list:
print([i for item in list(zip(L1,L2)) for i in item])
# output:
[1, 'a', 2, 'b', 3, 'c', 4, 'd']
只zip一个list:
L1 = [1,2,3,4,5]
zip_L1 = zip(L1)
print(list(zip_L1))
# Output
[(1,), (2,), (3,), (4,), (5,)]
本题内容可用于解决:2500. 删除每行中的最大值