FishHook
Что тут непонятного то?
mick_gНеверный вывод.
Получается, методом get вполне можно добавлять в словарь значения для новых ключей.
Return the value for key if key is in the dictionary, else default. If default is not given, it defaults to None, so that this method never raises a KeyError.а устанавливает метод setdefault
If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default defaults to None.
lst = [['Ваня', 'мороженое', 2], ['Петя', 'ручка', 5], ['Ваня', 'карандаш', 3], ['Ваня', 'мороженое', 1], ['Петя', 'конверт', 20], ['Ваня', 'конверт', 5]] dic = {} def d(x,key,val): x[key] = x.get(key,0)+val return x for i in lst: key,val = i[1:] dic[i[0]] = d(dic.get(i[0], {}),key,val) print(dic)
{'Ваня': {'мороженое': 3, 'карандаш': 3, 'конверт': 5}, 'Петя': {'ручка': 5, 'конверт': 20}}