11
    dict1=({"EMP$$1":1,"EMP$$2":2,"EMP$$3":3})

Pythonを使用してEMPが辞書に存在するかどうかを確認する方法

   dict1.get("EMP##") ??
4

5 に答える 5

30

あなたが何をしたいのかは完全には明確ではありません。

次の方法dictを使用して、選択キーのキーをループできます。startswith()

>>> for key in dict1:
...     if key.startswith("EMP$$"):
...         print "Found",key
...
Found EMP$$1
Found EMP$$2
Found EMP$$3

リスト内包表記を使用して、一致するすべての値を取得できます。

>>> [value for key,value in dict1.items() if key.startswith("EMP$$")]
[1, 2, 3]

キーが一致するかどうかを知りたいだけの場合は、次any()関数を使用できます。

>>> any(key.startswith("EMP$$") for key in dict1)
True
于 2010-09-17T13:49:22.917 に答える
8

このアプローチは、辞書の意図に反するものとして私を襲います。

ディクショナリは、値が関連付けられているハッシュキーで構成されています。この構造の利点は、非常に高速なルックアップ(O(1)のオーダー)を提供することです。キーを検索することで、そのメリットを否定できます。

辞書を再編成することをお勧めします。

dict1 = {"EMP$$": {"1": 1, "2": 2, "3": 3} }

次に、「EMP$$」を見つけるのは簡単です

if "EMP$$" in dict1:
    #etc...
于 2010-09-17T14:05:59.020 に答える
2

やりたいことをもっと具体的にする必要があります。しかし、あなたが与えた辞書を仮定すると:

 dict1={"EMP$$1":1, "EMP$$2":2, "EMP$$3":3}

要求する前に特定のキーが存在するかどうかを知りたい場合は、次のことができます。

dict1.has_key('EMP$$1') 
True

キーTrueを持っているように返します。dict1EMP$$1

dict1.get()また、キーのチェックを忘れて、デフォルトの戻り値である:に依存することもできます。

dict1.get('EMP$$5',0)
0

0与えられたデフォルトとしての戻り値にdict1はキーがありませんEMP$$5

同様の方法で、 `try / exception /構造を使用して、欠落したキーをキャッチして処理することもできます。

try:
    dict1['EMP$$5']
except KeyError, e:
    # Code to deal w key error
    print 'Trapped key error in dict1 looking for %s' % e

この質問に対する他の回答も素晴らしいですが、より正確にするには、より多くの情報が必要です。

于 2010-09-17T14:38:59.287 に答える
1

このような辞書キーを照合する方法はありません。この問題のデータ構造を再考することをお勧めします。これをさらに速くする必要がある場合は、接尾辞木のようなものを使用できます。

于 2010-09-17T13:45:58.990 に答える
0

inアイテムが別の文字列にあるかどうかをチェックする文字列演算子を使用できます。dict1イテレータはキーのリストを返すため、各dict1.keyに対して「EMP$$」をチェックします。

dict1 = {"EMP$$1": 1, "EMP$$2": 2, "EMP$$3": 3}

print(any("EMP$$" in i for i in dict1))
# True

# testing for item that doesn't exist
print(any("AMP$$" in i for i in dict1))
# False
于 2019-02-05T16:44:41.873 に答える