在Scala中,要从我需要做的字典中删除一个键(从REPL粘贴):
scala> Map(9 -> 11, 7 -> 6, 89 -> 43) - 9
res4: scala.collection.immutable.Map[Int,Int] = Map(7 -> 6, 89 -> 43)
删除多个键:
scala> Map(9 -> 11, 7 -> 6, 89 -> 43) -- Seq(9, 89)
res5: scala.collection.immutable.Map[Int,Int] = Map(7 -> 6)
Python的做法是什么? (我发布了Scala示例,因为这是我来自的背景。)
答案 0 :(得分:6)
如果d
是您的字典,k
是您要删除的密钥:
d.pop(k)
例如:
d = {"a": 1, "b": 2, "c": 3}
d.pop("a")
print d
# {'c': 3, 'b': 2}
如果你想删除多个:
for k in lst:
d.pop(k)
如果你想非破坏性地做这件事,并获得一个新的字典作为一个子集,你最好的选择是:
s = set(lst)
new_dict = {k: v for k, v in d.items() if k not in s}
您可以使用k not in lst
代替处理set(lst)
,但如果要移除的项目列表很长,则使用set
会更快。
答案 1 :(得分:1)
>>> d = {"a": 1, "b": 2, "c": 3}
>>> for _ in ['a','c']: del(d[_])
...
>>> d
{'b': 2}