我有两个不同长度的列表,L1 和 L2。 L1 比 L2 长。我想得到一个字典,其中 L1 的成员作为键,L2 的成员作为值。
只要 L2 的所有成员都用完。我想从 L2[0] 重新开始。
L1 = ['A', 'B', 'C', 'D', 'E']
L2 = ['1', '2', '3']
D = dict(zip(L1, L2))
print(D)
不出所料,输出是这样的:
{'A': '1', 'B': '2', 'C': '3'}
我想要达到的目标如下:
{'A': '1', 'B': '2', 'C': '3', 'D': '1', 'E': '2'}
最佳答案
使用 itertools.cycle
循环到 L2
的开头:
from itertools import cycle
dict(zip(L1, cycle(L2)))
# {'A': '1', 'B': '2', 'C': '3', 'D': '1', 'E': '2'}
在您的情况下,将 L2
与自身连接也可以。
# dict(zip(L1, L2 * 2))
dict(zip(L1, L2 + L2))
# {'A': '1', 'B': '2', 'C': '3', 'D': '1', 'E': '2'}
关于python - 通过将两个长度不等的列表压缩在一起来创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54095758/