【发布时间】:2020-09-15 07:22:27
【问题描述】:
例如,我想压缩两个不同大小的列表:
list1=[1,2,3]
list2=[1,2,3,4]
# zip the two list will be [(1,1),(2,2),(3,3)]
zip(list1, list2)
我想要的是:
[(1,1),(2,2),(3,3),(None,4)]
有没有什么简单的方法可以做到这一点?
【问题讨论】:
标签: python
例如,我想压缩两个不同大小的列表:
list1=[1,2,3]
list2=[1,2,3,4]
# zip the two list will be [(1,1),(2,2),(3,3)]
zip(list1, list2)
我想要的是:
[(1,1),(2,2),(3,3),(None,4)]
有没有什么简单的方法可以做到这一点?
【问题讨论】:
标签: python
在 itertools 中有 zip_longest 可以做到这一点:
>>> from itertools import zip_longest
>>> list(zip_longest(range(1,4), range(1,5)))
[(1, 1), (2, 2), (3, 3), (None, 4)]
【讨论】:
这个:
list1=[1,2,3]
list2=[1,2,3,4]
for _ in range(len(list2)-len(list1)): list1.append(None)
print(list(zip(list1, list2)))
输出:
[(1, 1), (2, 2), (3, 3), (None, 4)]
【讨论】:
我想你想要itertools.zip_longest
>>> list1=[1,2,3]
>>> list2=[1,2,3,4]
>>> import itertools
>>> list(itertools.zip_longest(list1, list2))
[(1, 1), (2, 2), (3, 3), (None, 4)]
【讨论】: