python - 通过将两个长度不等的列表压缩在一起来创建字典

标签 python list dictionary zip

我有两个不同长度的列表,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/

相关文章:

python - python 中函数可以返回 numpy 参数吗?

python - Beautifulsoup 异常列表超出范围

python - 在Python中迭代列表的列表

hibernate - 通过排序而不是索引字段在 hibernate 中映射列表

python - 三层嵌套字典的存在性检验

python - 将列表写入 csv 文件,而不是按需要写入

python - babelize_shell() 在 NLTK 包中不起作用

python - 即使在我的代码中合并 "linespace = ' None' "后,连接图表上点的线也没有消失

python - 是否可以遍历除特定子集之外的所有字典键?

swift - 使用返回 double 值的用户输入访问字典