如何在字典中分配现有密钥的值?

时间:2016-11-09 09:49:30

标签: python python-2.7 list dictionary

我必须检查字符是否在字典中。如果它在那里我必须在变量中分配键的值,否则创建一个具有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
你能帮助我吗? 非常感谢你。

7 个答案:

答案 0 :(得分:0)

在两种情况下,项目分配都会用新的值替换任何现有值;无需检查密钥是否已存在。

d[key] = value

答案 1 :(得分: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

答案 2 :(得分:0)

在我看来,你总是为任何情况做dict [item] = value,如果在字典中存在该项目,那么你必须为字典创建一个新变量,但我不知道您要使用的方法,或者如果密钥已存在,它将是新密钥。

如果你不明白的话,抱歉我的英语很差,写下来吧!

答案 3 :(得分: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

答案 4 :(得分:0)

一种方法:

dict={}
for item in list:

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

    dict[item]=value

如果词典的键中没有项目,只需创建一个None作为起始值。然后,为键指定值(现在你确定它在那里)。

答案 5 :(得分: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'}

答案 6 :(得分:0)

检查dict中的项目是否输入()

dict = {}
for item in selection_list:
    dict[item] = new_val if item in dict else raw_input()