2

私は iteritems() と items() を for ループと組み合わせてキーと値をスキャンできる標準辞書で使用することに精通しています。ただし、デフォルトのdictでこれを行うにはどうすればよいですか。たとえば、特定の値がキーまたはキーに関連付けられた値のいずれにも表示されないことを確認したいと思います。現在、次のことを試しています。

for key, val in dic.iteritems():
    print key, val

ただし、次のようになります。

1 deque([2, 2])

変数/辞書には次の宣言があります

from collections import defaultdict, deque
clusterdict = defaultdict(deque)

では、どうすれば重要な値を取得するのが最善でしょうか? ありがとう!

4

5 に答える 5

3

一般に、 defaultdict ddの場合、値xがキーとして使用されているかどうかを確認するには、次のようにします。

x in dd

xが値として使用されているかどうかを確認するには、次のようにします。

x in dd.itervalues()

あなたの場合 (両端キューを値として持つ defaultdict)、xがいずれかの両端キューにあるかどうかを確認したい場合があります。

any(x in deq for deq in dd.itervalues())

defaultdict はd[k]、欠落しているキーを検索するときに新しいエントリを自動的に作成することを除いて、通常の辞書のように動作することに注意してください。それ以外の場合は、通常の dict と同じように動作します。

于 2012-01-18T12:12:55.787 に答える
2

あなたの質問を理解した場合:

for key, val in dic.iteritems():
    if key!=given_value and not given_value in val:
        print "it's not there!"

あなたが何か他のことを意味しない限り...

于 2012-01-18T12:12:59.663 に答える
0
stuff = 'value to check'
if not any((suff in key or stuff in  value) for key, value in dic.iteritems()):
    # do something if stuff not in any key or value
于 2012-01-18T12:23:07.963 に答える
-2

http://docs.python.org/library/collections.html#collections.defaultdict

したがって、イテアイテムを使用できます

于 2012-01-18T12:16:56.540 に答える