0

Scala で辞書から 1 つのキーを削除するには、次のようにする必要があります (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 の例を投稿したのは、それが私の背景だからです。)

4

2 に答える 2

7

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

于 2012-10-05T20:10:07.440 に答える
1
>>> d = {"a": 1, "b": 2, "c": 3}
>>> for _ in ['a','c']: del(d[_])
... 
>>> d
{'b': 2}
于 2012-10-07T19:07:03.673 に答える