这是我的代码:
a = dict(aa='aaaa', bb='bbbbb', cc='ccccc', ...)
print(a.pop(['cc', ...]))
但这会引发错误。 从python词典中弹出许多元素的最简单方法是什么?
答案 0 :(得分:21)
简单如何:
for e in ['cc', 'dd',...]:
a.pop(e)
答案 1 :(得分:20)
使用列表理解:
a = {'key1':'value1','key2':'value2','key3':'value3'}
print [a.pop(key) for key in ['key1', 'key3']]
答案 2 :(得分:4)
如果我理解你想要什么,这应该可以解决问题:
print [a.pop(k) for k in ['cc', ...]]
但要小心,因为pop
具有破坏性,即它会修改你的字典。
答案 3 :(得分:1)
这里是单行代码,适用于任意长字典,在这种情况下:
print([a.pop(key) for key in list(a.keys()) if key >= 'cc'])
为说明:
a = dict(aa='aaaa', bb='bbbbb', cc='ccccc', dd='ddddd', ee='eeeee')
print([a.pop(key) for key in list(a.keys()) if key >= 'cc']) # => ['ccccc', 'ddddd', 'eeeee']
print(a) # => {'aa': 'aaaa', 'bb': 'bbbbb'}
注意:只要字典键按如下方式“递增”,它将起作用:aa
,bb
,cc
,{{1} },dd
,ee
,...
答案 4 :(得分:0)
a={'aa':'aaaa','bb':'bbbbb','cc':'ccccc'}
remove = ['aa', 'cc']
newA = dict([(k, v) for k,v in a.items() if k not in remove])