Уведомления

Группа в Telegram: @pythonsu

#1 Май 24, 2022 20:09:30

Ynejus
Зарегистрирован: 2021-12-25
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

заполнение словаря

Хочу заполнить словарь словарём, чтобы получилось

{'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)

Офлайн

#2 Май 24, 2022 21:09:33

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

заполнение словаря

  
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)

Офлайн

#3 Май 24, 2022 22:14:10

Ynejus
Зарегистрирован: 2021-12-25
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

заполнение словаря

А есть ли возможность именно через for .. in : записать?
Просто там есть дополнительные вычисления

Офлайн

#4 Май 24, 2022 23:37:54

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

заполнение словаря

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})

Офлайн

#5 Май 25, 2022 17:12:55

Ynejus
Зарегистрирован: 2021-12-25
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

заполнение словаря

xam1816
Спасибо огромное за помощь

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version