use*_*839 3 python dictionary jython key
我有一个列表,我需要在字典中.该列表具有重复(即将成为)具有不同值的键.如何找到这些键并将新值附加到它?
list=[q:1,w:2,q:7]
dictionary= q:1,7
w:2
Run Code Online (Sandbox Code Playgroud)
提前致谢
在字典列表中创建值,以便您具有:
dictionary = {'q': [1, 7],
'w': [2]
}
Run Code Online (Sandbox Code Playgroud)
等等,即您的单项值是单项列表.这意味着当你有另一个时'q'
,你可以这样做:
dictionary['q'].append(5)
Run Code Online (Sandbox Code Playgroud)
除非这dictionary['q']
是KeyError
您第一次这样做,所以请setdefault
改用:
dictionary.setdefault('q', []).append(5)
Run Code Online (Sandbox Code Playgroud)
因此,现在您只需要迭代输入列表中的每个键值对,并为每个键执行上述操作.
您可能还想要dictionary
:
dictionary = collections.defaultdict(list)
Run Code Online (Sandbox Code Playgroud)
所以你可以这样做dictionary['q'].append(5)
- 它的工作原理与上面相同,在所有方面都是第一个.如果在解析原始列表并正确设置所有值后,您的字典如下所示:
dictionary = {'q': [1, 7, 5]
'w': [2, 8, 10, 80]
'x': [3]
}
Run Code Online (Sandbox Code Playgroud)
你试着去做print(dictionary['y'])
.你期望发生什么?如果你使用普通的dict setdefault
,这被认为是一个错误,所以它会提高KeyError
.如果使用a defaultdict
,则会打印一个空列表.无论哪种方法对代码更有意义,都应确定对代码进行编码的方式.
归档时间: |
|
查看次数: |
4832 次 |
最近记录: |