2017-09-05 87 views
-8

我有一本字典,如下圖所示:如何從python字典中獲取匹配的項目?當值是數組

dict={0:['hamburger','cheese'], 1:['hamburger']} 

我想知道這是讓這兩者都是在0和1的每一個項目的最快方法,像「漢堡包」這個例子

+0

你想得到什麼? '0'和'1',因爲這些鍵具有值? – MatsLindh

+0

我想,如果你想要線性查找,你需要一套。列表是二次方的 - 一個用於字典,另一個用於列表。 –

+0

請包括你已經嘗試過的代碼,也可以更具體地說明你想要的輸出是什麼 – dhdavvie

回答

1

你需要的是你的兩個字典值交集。 This question給出了一個解決方案。

dict={0:['hamburger','cheese'], 1:['hamburger']} 
l = list(set(dict[0]) & set(dict[1])) 
print(l) 
> ['hamburger'] 
0

嘗試,

[key for key in dict.keys() if 'hamburger' in dict[key]] 

的索引列表將出現沿z

+0

漢堡包只是例如 \t 我想獲得每個物品都是0和1 –

+0

@GiorgiAbashidze「我想要得到每個項都是0和1」。您如何將這句話添加到您的問題中,因爲與原始文章不同,這實際上告訴我們您要求的是什麼。 – Zinki

0
f=0 
for i in d:  #d- dictionary 
    if f==0: 
     m=set(d[i]) 
     f=1 
     continue 
    m=m & set(d[i]) # get intersection. note: there will be no duplicate elements 
print list(m) 

m=set(d[d.keys()[0]]) # ensure dictionary has at least one key 

for i in d.keys()[1:]: 
    m=m & set(d[i]) 
print list(m) 
相關問題