Форум сайта python.su
Хочу заполнить словарь словарём, чтобы получилось
{'alex': {'alpha': 10, ‘beta’: 11, ‘gamma’: 12},
‘billy’: {'alpha': 20, ‘beta’: 21, ‘gamma’: 22},
‘charlie’: {'alpha': 30, ‘beta’: 31, ‘gamma’: 32}}
qwe = ['alex','billy','charlie'] asd = ['alpha','beta','gamma'] zxc = dict.fromkeys(qwe,dict.fromkeys(asd)) for i in qwe: for j in asd: zxc[i].update({j: (qwe.index(i)+1)*10 + asd.index(j)}) print(zxc)
{'alex': {'alpha': 30, ‘beta’: 31, ‘gamma’: 32},
'billy': {'alpha': 30, ‘beta’: 31, ‘gamma’: 32},
'charlie': {'alpha': 30, ‘beta’: 31, ‘gamma’: 32}}
Отредактировано Ynejus (Май 24, 2022 20:10:29)
Офлайн
qwe = ['alex','billy','charlie'] asd = ['alpha','beta','gamma'] out ={name: {k: i*10 + j for j, k in enumerate(asd)} for i, name in enumerate(qwe, 1)} print(out)
Офлайн
А есть ли возможность именно через for .. in : записать?
Просто там есть дополнительные вычисления
Офлайн
Ynejus
А есть ли возможность именно через for .. in : записать?
for i, name in enumerate(qwe, 1): out[name] = {} for j, k in enumerate(asd): out[name].update({k: i * 10 + j})
Офлайн
xam1816Спасибо огромное за помощь
Офлайн