[英]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.