2016-11-09 7 views
0

キーが辞書にあるかどうかをチェックする必要があります。そこにある場合は、変数のキーの値を代入する必要があります。それ以外の場合は、raw_inputの値を持つ新しいキーを作成する必要があります。私は以下のコードを書いても動作しません。キーが辞書に入っているかどうかを確認する必要があります。辞書の既存のキーの値をどのように割り当てることができますか?

たとえば、私は食品レシピのデータベースを持っています。 "オイル"はすべてのレシピにあるので、データベースのすべての行に対してraw_inputを挿入することはできません。ですから、私は辞書を作成してその中の値を選択したいと思います。

たとえば、データベースには、100行の成分 "油"があります。私はこのデータベースを別のデータベースと照合します。キーは成分の名前(この場合「オイル」)で、値は特性(コーンオイル)です。キー "oil"を持つ各行は値 "corn oil"を持っていなければなりません。これを辞書で作れますか?

dict={} 
for item in list: 
#if the item is not in the list, I assign new value for a raw_input 
    if dict.get(item) is None: 
     dict[item]=value 
    #if the item is in the list, I assing the previous value 
    else: 
     dict[item]=value 

お願いします。 ありがとうございます。

+0

あなたのコードの場合キーが存在するかどうかにかかわらず、単にdictに 'value'を挿入します。あなたの問題は何ですか?何が起こると予想され、実際に何が起こっていますか?どうか明らかにしてください。 –

+0

あなたはifとelseでも同じことをしていますが、何が起こると思いますか? – polku

+0

キーが辞書内にあるかどうかを確認する必要があります。キーが辞書にある場合、私は新しい変数で同じ値を取り除かなければなりません。さもなければ、私はカップル{key:value}をキーしなければなりません。たとえば、私は食品レシピのデータベースを持っています。塩はほとんどすべてですので、データベースのすべての行に対してraw_inputを挿入することはできません。私は辞書を作成し、そこで値を選択したいと思う。 – kyle1009

答えて

0

どちらの場合でも、既存の値を新しいものに置き換えることができます。キーがすでに存在するかどうかを確認する必要はありません。

d[key] = value 
0

これは役に立ちそうです。キーが存在しないいる場合は、キーが既に私の意見では

dict_a={} 
for item in list: 
    if item not in dict_a: 
     dict[item]= raw_input() #Assign your raw_input value here 

#If the value exist, you don't have to do any change 
+0

キーが存在するならば、私は新しい変数に値を当てなければなりません。たとえば、データベースでは、私は成分 "油"と100の行を持っています。私はこのデータベースを別のデータベースと照合します。キーは成分の名前(この場合「オイル」)で、値は特性(コーンオイル)です。キー "oil"を持つ各行は値 "corn oil"を持っていなければなりません。これを辞書で作れますか? – kyle1009

+0

これは私が理解したものです。私が間違っているなら、私を訂正してください。 1つの表に各行に成分が含まれていて、もう1つの表に|オイル|コーン油|あなたが成分中のヤシ油を見つけたら、それを|オイル|パーム油|そのテーブルでは、そうですか? – Vaulstein

0

を存在するため、他の項目が存在する両方の場合、あなたは常に、どのような場合のためのdictの[アイテム] =値をしない、新しい値を代入します辞書の有無にかかわらず、辞書の新しい変数を作成する必要がありますが、その方法がわかりません。また、キーがすでに存在する場合は新しいキーになります。

何かを理解していないと、貧しい私の英語のために申し訳ありません、それを書きます!

0

どのようにそれを行うためのこれについて、

d = {} 

if item in d: 
    d[item] = prev_value 
else: 
    d[item] = new_value 

# OR in one line 
d[item] = prev_value if item in d else new_value 
0

一つの方法:

dict={} 
for item in list: 

    if item not in dict.keys(): 
     dict[item] = None 

    dict[item]=value 

項目が辞書のキーに存在しない場合は、単に値を出発物質としてNoneのものを作成します。次に、キーに値を割り当てます(今はあなたがそこにいると確信しています)。

0

それはあなたが望むものを返します。これを実行する。これについて

dict={} 
item = 'key' 
if item in dict.keys(): # item will be some key 
dict[item]=value 
else: 
get_key = raw_input('new key name you want:') 
dict[get_key] = raw_input('value for corresponding key:') 

print 'di',dict 

出力:

new key name you want:my_key 
value for corresponding key: 
di {'my_key': 'val_for_it'} 
0

チェック現在のdict他の入力の項目()

dict = {} 
for item in selection_list: 
    dict[item] = new_val if item in dict else raw_input() 
関連する問題