Вот типичная ситуация при компиляции данных в словарях из разных источников:
Скажем, у вас есть словарь, в котором хранятся списки вещей, например, которые мне нравятся:
likes = {
'colors': ['blue','red','purple'],
'foods': ['apples', 'oranges']
}
и второй словарь с некоторыми значениями в нем:
favorites = {
'colors':'yellow',
'desserts':'ice cream'
}
Затем вы хотите перебрать объект «избранное» и либо добавить элементы этого объекта в список с соответствующим ключом в словаре «лайки», либо добавить новый ключ к нему, значение которого представляет собой список, содержащий значение в «избранном».
Есть несколько способов сделать это:
for key in favorites:
if key in likes:
likes[key].append(favorites[key])
else:
likes[key] = list(favorites[key])
или
for key in favorites:
try:
likes[key].append(favorites[key])
except KeyError:
likes[key] = list(favorites[key])
И многое другое ...
Я обычно использую первый синтаксис, потому что он кажется более питоническим, но если есть другие, лучшие способы, я хотел бы знать, что они есть. Спасибо!