2017-02-21 809 views
0

将值添加到字典中,并使用简单的if语句将值+1的值与键值存在正常工作,如下所示:如果键已经在字典中,将值添加到字典并将列表项的值增加1(python)

d = {word: (frequency, wordList[1]) for frequency, word in sorteddict} 
for key, value in d.items(): 
    my_dict[key, value] = my_dict[key, value] + 1 if key in my_dict else value 

我想迭代字典“d”将所有键值对添加到字典“my_dict”。

我遇到的问题是字典是关键:列表对,如果密钥存在,我只想增加list [0]的值。例如:

d = {'smith': (1, 'jones')} 

my_dict = {'smith': (2, 'jones')} 

my_dict已经包含密钥“史密斯”等的逻辑是:

+ 1 to list[0] else 1 
+0

元组中的第二个值是什么? –

+1

这些arent列表,这些是元组!你不能增加元组! – Nullman

+0

这个问题很难理解。你的意思是这样吗? '{x:(y [0] + 1,y [1])for d.items()}' – Nullman

回答

1

澄清的问题和回答: 的问题是,有2种类型的字典dmy_dict。每个值都是包含2个项目的元组。我们想要的是生成一个新的字典,其中包含d的键和值,但如果键存在于my_dict中,则值元组的第一项增加1,如果不存在则将其设置为1。我们将实现如下效果:

{x: (y[0] + 1 if x in my_dict else 1, y[1]) for x, y in d.items()}