2017-04-09 18 views
1

辞書の共通の値を単語のリストに基づいて返すコードを記述しようとしています。 例:Python辞書の一般的な値

inp = ['here','now'] 
dict = {'here':{1,2,3}, 'now':{2,3}, 'stop':{1, 3}} 

for val in inp.intersection(D): 
    lst = D[val] 

print(sorted(lst)) 

output: [2, 3] 

入力INPは、上記の単語のいずれかまたは全てを含むことができ、そして私は、彼らが共通している値が知りたいです。私はちょうどそれを行う方法を把握していないようです。どうか助けていただければ幸いです。

+0

何'D'ですか?あなたの 'dict'を意味しますか? –

+0

申し訳ありません、はい。私はお詫び申し上げます。私のコードでは、Dはコピーペーストを行ったときにそれを変更するのを忘れていました。 – BallsyCatHands

答えて

0

私は完全にあなたの質問を理解していることは確かではないが、私は、これはあなたが非常に簡単な方法であるものの意味したものだと思う:

inp = ['here','now'] 
dict = {'here':{1,2,3}, 'now':{2,3}, 'stop':{1, 3}} 

output = [] 

for item in inp: 
    output.append(dict[item]) 

for item in output: 
    occurances = output.count(item) 
    if occurances <= 1: 
     output.remove(item) 

print(output) 

以上に発生した辞書からのこの出力すべき項目を1つの入力。すべての入力に対して共通にしたい場合は、< = 1を与えられた入力数に変更してください。

1

これを行う最も簡単な方法は、すべてを数え、交差したセットの数と等しい値を指定することです。最初の部分を達成するために

は、我々はこのような何か:第二部を達成するために

answer = {} 
for word in inp: 
    for itm in word: 
    if itm in answer: 
     answer[itm] += 1 
    else: 
     answer[itm] = 1 

を、私たちはanswerを反復し、そのような配列を構築する必要があります。

answerArr = [] 
for i in answer: 
    if (answer[i] == len(inp)): 
    answerArr.append(i) 
+1

はい!あなたが私の質問に答えたのを見たのと同じように(私は非常に感謝します、ありがとう)私はそれを理解しました。 – BallsyCatHands

関連する問題