2017-02-21 157 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()}