python - 从两个列表创建字典
问题描述
我正在尝试从两个列表创建一个字典,字典应该将 listA 的每个元素与 listB 中相同索引处的相应元素进行一对一映射,我在下面有当前输出和预期输出,任何人都可以建议如何解决这个问题?
destination_milestones_gerrit_branches ={}
destination_milestones =['m1','m2','m3']
gerrit_branches = ['b1','b2','b3']
for milestone in destination_milestones:
print milestone
for branch in gerrit_branches:
print branch
destination_milestones_gerrit_branches[milestone]= branch
print destination_milestones_gerrit_branches
电流输出:-
{'m1': 'b3', 'm3': 'b3', 'm2': 'b3'}
预期输出:-
{'m1': 'b1', 'm2': 'b2','m3':'b3'}
解决方案
您每次都通过在循环中进行两次迭代来覆盖您的字典值。
改用zip
:
destination_milestones_gerrit_branches = dict(zip(destination_milestones, gerrit_branches))
>>> destination_milestones_gerrit_branches
{'m1': 'b1', 'm2': 'b2', 'm3': 'b3'}
如果您坚持通过循环执行此操作,请使用enumerate
获取 each 的索引destination_milestones
:
destination_milestones_gerrit_branches ={}
for i, milestone in enumerate(destination_milestones):
destination_milestones_gerrit_branches[milestone]= gerrit_branches[i]
>>> destination_milestones_gerrit_branches
{'m1': 'b1', 'm2': 'b2', 'm3': 'b3'}
推荐阅读
- spring-boot - Jenkins:从 maven 中提取版本和 artifactid 以获得 docker 图像名称/标签
- python - 如何为 Matplotlib 3d 轴上绘制的平面多边形添加厚度?
- html - 过滤日期范围的上下文不起作用
- python - 如何“压缩”不同大小的列表?
- python - 我正在训练一个 Genomic-ULMFIT 模型,但我无法运行某些功能
- testing - 如何在访问本地主机上运行的反应应用程序之前在赛普拉斯中设置 cookie
- javascript - API JSON 格式化到 bootstrap-vue 表
- ios - 引用 JSON 时 Xcode Preview 和模拟器崩溃
- connect - 如何将 ieee80211ScalarRadio 连接到 Standardhost6
- java - 如何使用 GridBagLayout 垂直格式化