2016-11-09 59 views
0

我必須檢查密鑰是否在字典中。如果它在那裏,我不得不在變量中分配鍵的值,否則爲一個raw_input創建一個新鍵值。我寫下面的代碼,但它不起作用。我必須檢查密鑰是否在字典中。如何分配字典中現有密鑰的值?

例如我有一個食譜的數據庫。 「石油」幾乎在所有的食譜,所以我不能插入raw_input所有的一行數據庫。所以我想創建一個字典並在那裏選擇值。

例如在數據庫中,我有100行與成分「油」。我將這個數據庫與另一個匹配。關鍵是成分的名稱(在這種情況下是「油」),價值是特徵(玉米油)。每個關鍵「石油」的行必須具有「玉米油」的價值。我可以用字典做這個嗎?

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

目前你的代碼只要將'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行「油」成分。我將這個數據庫與另一個匹配。關鍵是成分的名稱(在這種情況下是「油」),價值是特徵(玉米油)。每個關鍵「石油」的行必須具有「玉米油」的價值。我可以用字典做這個嗎? – kyle1009

+0

這就是我所理解的。糾正我,如果我錯了。 您有兩個表,其中一個表在每個單行中包含配料,而另一個表中包含|油|玉米油| ,如果您在配料中發現棕櫚油,您想將其存儲爲|油|棕櫚油|在那張表裏,對嗎? – 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 = {} 
for item in selection_list: 
    dict[item] = new_val if item in dict else raw_input() 
相關問題