从两个列表创建词典

2024-05-08 22:34:16 发布

您现在位置: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'}

Tags: branch元素字典destinationb2b1m3b3
1条回答
网友
1楼 · 发布于 2024-05-08 22:34:16

通过在循环中执行双重迭代,每次都可以覆盖字典值。你知道吗

改用zip

destination_milestones_gerrit_branches = dict(zip(destination_milestones, gerrit_branches))

>>> destination_milestones_gerrit_branches
{'m1': 'b1', 'm2': 'b2', 'm3': 'b3'}

如果坚持通过循环执行,请使用enumerate获取每个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'}

相关问题 更多 >