2017-09-05 12 views
-8

ている場合、以下のように私は辞書をしました:どのようにPython辞書から一致する項目を取得するには?値が配列

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

私は「ハンバーガー」のよう、0と1の両方にあるすべてのアイテムを取得するための最速の方法である知っていただきたいと思いますこの例

+0

何を取得しますか?それらのキーは値を持っているので '0'と' 1'ですか? – MatsLindh

+0

リニアルックアップが必要な場合は、セットが必要です。 Listは2次です。辞書には1つ、リストには2つあります。 –

+0

あなたが試したコードを含めてください、あなたの希望する出力がより具体的であるようにしてください – dhdavvie

答えて

1

はあなたの2つのdictの値の交点です。 This questionは溶液を与える。

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

は、インデックスのリストは、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) 
で存在するであろう、

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

をお試しください何をしたい

または

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) 
関連する問題