Что мне недостает? Я с Dict из dicts (который был создан на лету), как это:Добавочный список в dict dict
googlers = 3
goog_dict = {}
dict_within = {'score':[], 'surprise':''}
for i in xrange(googlers):
name = "goog_%s" %i
goog_dict[name] = dict_within
Теперь я хочу добавить некоторые данные:
tot =[23,22,21]
best_res = 8
for i in xrange(len(tot)):
name = "goog_%s" %i
print name
rest = tot[i] - best_res
if rest % 2 == 0:
trip = [best_res, rest/2, rest/2]
elif rest % 2 != 0:
rest_odd = rest/2
fract_odd = rest - rest_odd
trip = [best_res, rest_odd, fract_odd]
if (max(trip) - min(trip)) == 2:
surpr_state = True
elif (max(trip) - min(trip)) < 2:
surpr_state = False
goog_dict[name]['score'].append(trip)
goog_dict[name]['surprise'] = surpr_state
Я бы ожидать, мой выход будет:
{'goog_2': {'surprise': True, 'score': [8, 7, 8]}, 'goog_1':{'surprise': True, 'score': [8, 7, 7]}, 'goog_0': {'surprise': True, 'score': [8, 6, 7]}}
Но то, что я получаю это:
{'goog_2': {'surprise': True, 'score': [[8, 7, 8], [8, 7, 7], [8, 6, 7]]}, 'goog_1':{'surprise': True, 'score': [[8, 7, 8], [8, 7, 7], [8, 6, 7]]}, 'goog_0': {'surprise': True, 'score': [[8, 7, 8], [8, 7, 7], [8, 6, 7]]}}
Так почему же список trip
append to все dicts вместо одного только с текущим name
?
Пожалуйста, покажите фактический результат фактического кода. http://sscce.org/ – Marcin
И в значениях примера предпочитайте фактический синтаксис Python вместо некоторого приближения. –