我有一个需要编入字典的列表。该列表具有重复的(即将成为)具有不同值的键。如何找到这些键并将新值附加到它?
list=[q:1,w:2,q:7]
dictionary= q:1,7
w:2
提前致谢
我有一个需要编入字典的列表。该列表具有重复的(即将成为)具有不同值的键。如何找到这些键并将新值附加到它?
list=[q:1,w:2,q:7]
dictionary= q:1,7
w:2
提前致谢
在字典列表中创建值,以便您拥有:
dictionary = {'q': [1, 7],
'w': [2]
}
等等,即,您的单项值是单项列表。这意味着当你有另一个时'q'
,你可以这样做:
dictionary['q'].append(5)
除了这dictionary['q']
将是KeyError
您第一次这样做,所以请setdefault
改用:
dictionary.setdefault('q', []).append(5)
所以现在你只需要遍历输入列表中的每个键值对,并为它们中的每一个执行上述操作。
您可能还希望拥有dictionary
:
dictionary = collections.defaultdict(list)
所以你可以这样做dictionary['q'].append(5)
——它的工作方式与上述相同,在所有方面都是如此。如果在您解析了原始列表并正确设置了所有值之后,您的字典将如下所示:
dictionary = {'q': [1, 7, 5]
'w': [2, 8, 10, 80]
'x': [3]
}
而你尝试去做print(dictionary['y'])
。你期望会发生什么?如果你使用普通的 dict and setdefault
,这被认为是一个错误,所以它会引发KeyError
. 如果您使用 a defaultdict
,它将打印一个空列表。无论哪种方式对您的代码更有意义,都应该确定您的编码方式。