簡體   English   中英

使用defaultdict搜索鍵/值

[英]Searching key/values with defaultdict

我熟悉標准字典的iteritems()和items()用法,可以將其與for循環結合使用以掃描鍵和值。 但是,我怎樣才能最好地使用默認字典。 例如,我想檢查給定的值在鍵或與任何鍵關聯的任何值中均未顯示。 我目前正在嘗試以下方法:

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

但是我得到以下內容:

1 deque([2, 2])

我對變量/字典有以下聲明

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

那么如何最好地獲得關鍵價值呢? 謝謝!

通常,對於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]查找時會自動創建新條目; 否則,它們的行為與常規命令沒有什么不同。

如果我了解您的問題:

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

除非你有別的意思...

我是為Python 3制作的:

from collections import defaultdict

count_data = defaultdict(int)
count_data[1] = 10
query = 2
if query in count_data.values():
   print('yes')

編輯

您也可以使用Counter字典:

from collections import Counter
count_data = Counter()
count_data[1] = 10
query = 2
if query in count_data.values():
    print('yes')
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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM