2016-07-13 8 views
0

辞書を正常にインポートできます。その値の辞書から出力を取得できますが、ユーザーの入力と一致する値ではなくすべての値が表示されます。入力を使用して辞書値を表示

入力は最初に下位に変換され、次に辞書内で参照される個々の単語に分割されます。

# prob_dict : dictionary 

# problemlist : input lowercase and split 

私は多くの投稿を検索しましたが、解決する解決策が見つかりません。

problemlist = problem1.split() 

for problem in range(len(prob_dict)): 
    if prob_dict in problemlist: 
     solution = [] 
     solution = (prob_dict[problem]) 
     print('Your Solution is:', solution) 
    else: 
     print('could not find a solution') 

辞書には、次のとおりです。

prob_dict = {'wet': ['put in bag of rice to dry out'], 
      'screen': ['screen will need to be replaced'], 
      'charger': ['purchase new charger for our store'] 
      } 
+0

をと 'problem1'は何ですか? –

+0

こんにちは、私はあなたの質問を理解していません。あなたは詳細を教えていただけますか? –

+0

MCVEを提供してください([最小限の完全かつ検証可能なサンプルを作成する方法](https://stackoverflow.com/help/mcve)を参照)。 – martineau

答えて

3

if prob_dict in problemlistが起こることはほとんどないだろうものです。文字列のリストにdictが見つかりません。

代わりに、リスト内の項目を反復処理し、辞書項目とキーが含まれている場合表示されるはずです。

problemlist = [p.lower() for p in problem1.split()] 

for problem in problemlist: 
    if problem in prob_dict: 
     print('Your Solution is: ', prob_dict[problem][0]) 
       #          ^The associated string 
     break # remember to break once solution is found 
else: 
    print('could not find a solution') 
+0

私はあなたの答えに完全に同意しますが、OPがすべての辞書値の出力を受け取ったと言ったのは奇妙です。私は非常に混乱していました。元のリスト 'problem list'の値が – EoinS

+0

*であったのを疑問に思っていました*入力は最初に下位に変換され、辞書で参照される個々の単語に分割されます。* @Eoinsその問題を一貫して表現することはできません。 OPによって使用されるデータ構造を見ることで、それらを正しい方向に向けるソリューションを提供することができます。観察してくれてありがとう。 –

+0

これは数日間私の脳を揺さぶってきたモーセさん、ありがとう、私はパイソンには新しく、私は娘が学校でそれを学ぶのを助けるために学びたいと思っています。 –

関連する問題