2017-02-21 8 views
0

Добавление значений в dict и использование простой инструкции if в значение + 1 для значения, если ключ существует, прекрасно работает со следующим:Добавьте значения в значение dict и увеличьте значение элемента списка на 1, если ключ уже находится в dict (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», добавив все пары значений ключа в dict «my_dict».

Проблема, с которой я сталкиваюсь, заключается в том, что ключи dict: key, и я хочу увеличить значение списка [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]) для x, y в d.items()}' – Nullman

ответ

1

прояснить вопрос и ответ: проблема заключается в том, что есть 2 dicts г, my_dict. каждое значение представляет собой кортеж, содержащий 2 элемента. мы хотим сгенерировать новый dict, который имеет ключи и значения d, но с первым элементом кортежа значений, увеличенным на 1, если ключ существует в my_dict или установлен на 1, если нет. мы достигнем этого следующим образом:

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