从Python词典中弹出许多元素的最佳方法

zjm*_*126 17 python dictionary

这是我的代码:

a = dict(aa='aaaa', bb='bbbbb', cc='ccccc', ...)
print(a.pop(['cc', ...]))
Run Code Online (Sandbox Code Playgroud)

但这会引发错误.从python字典中弹出许多元素的最简单方法是什么?

Him*_*ury 25

怎么样简单:

for e in ['cc', 'dd',...]: 
  a.pop(e)
Run Code Online (Sandbox Code Playgroud)

  • 这是*删除*几个元素的好、简单和干净的方法。如果你想弹出它们,你可能会发现没有比在列表理解中使用 pop 更简单的解决方案。虽然这不完全是“卫生”,但这正是他想要的 ;) (2认同)

Tom*_*zuk 23

使用列表理解:

a = {'key1':'value1','key2':'value2','key3':'value3'}
print [a.pop(key) for key in ['key1', 'key3']]
Run Code Online (Sandbox Code Playgroud)

  • @Ben如果您只使用 print 语句(所以不是 a = [a.pop(key) ...]),则执行的语句不会将结果保存在任何变量中,但 a.pop 仍然会执行。因此,元素会从 a 中弹出,但弹出的结果不会存储在任何地方。 (2认同)

Voj*_*vic 6

如果我正确理解你想要什么,这应该可以解决问题:

print [a.pop(k) for k in ['cc', ...]]
Run Code Online (Sandbox Code Playgroud)

但要小心,因为它pop具有破坏性,即它会修改您的字典。