2016-11-09 64 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() 
相关问题