在for循环Python-最后一个项目不能被添加到字典

问题描述 投票:0回答:1
letters = ['a', 'b', 'c', 'd', 'e', 'f']
numbers = ['judge1','judge2','judge3','judge4','judge5']
dictionary = {}
for letter in letters:
    for number in numbers:
        roundDictionary[letter] = {number : None}

我想要的字典是:

dictionary = {'a' : {'1' : None, '2' : None, '3' : None, '4' : None, '5' : 
None}} 

等每个字母,但字典中只显示在列表中像这样的最后位置的项目:

{'a': {'5': None}, 'b': {'5': None}, 'c': {'5': None}, 'd': {'5': None}, 'e': {'5': None}, 'f': {'5': None}}

我怎样才能得到它所有的号码列表中添加到字典?谢谢

python
1个回答
0
投票

问题是,你重新分配值在每个循环的关键。有效地你每一次,这就是为什么你只看到最后一个值覆盖它。试试这个。

letters = ['a', 'b', 'c', 'd', 'e']
numbers = [1, 2, 3, 4, 5]
dictionary = {}

for letter in letters:
    for number in numbers:
        if (letter not in dictionary):
            dictionary[letter] = {}
        dictionary[letter][number] = None

编辑:从@Joran比斯利的评论是在同时发布此。他的方法比使用嵌套循环,并检查是否存在的关键更清洁。

© www.soinside.com 2019 - 2024. All rights reserved.