#python #dictionary
#python #словарь
Вопрос:
У меня есть словарь с предопределенными ключами:
{1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None}
и список с числовыми значениями:
[0, 10, 20, 30, 40, 50, 60, 100]
Я хочу добавить эти значения из списка в словарь, чтобы он выглядел так:
{1: 0, 2: 10, 3: 20, 4: 30, 5: 40, 6: 50, 7: 60, 8: 100}
Как я могу добавить каждый элемент из списка в следующий ключ моего словаря?
Комментарии:
1.
{key:val for key,val in zip(m_dict.keys(), m_list)}
Ответ №1:
Вы напрямую используете zip
dict и список значений, создаете пары, а затем dict
используете для создания сопоставлений из пар
d = {1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None}
v = [0, 10, 20, 30, 40, 50, 60, 100]
res = dict(zip(d, v))
print(res) # {1: 0, 2: 10, 3: 20, 4: 30, 5: 40, 6: 50, 7: 60, 8: 100}
Вам может показаться странным передавать весь dict d
zip
, но итерация по th dict такая же, как итерация по его ключу на самом деле, следующее может иметь больше смысла, но оно делает то же самое
dict(zip(d.keys(), v))
Комментарии:
1. есть ли вероятность, что ключи словаря не подбираются последовательно?
Ответ №2:
Ниже приведено более динамичное решение, в котором вам не нужно подготавливать наполовину заполненный dict
a_list = [0, 10, 20, 30, 40, 50, 60, 100]
a_dict = {idx 1:val for idx,val in enumerate(a_list)}
print(a_dict)
вывод
{1: 0, 2: 10, 3: 20, 4: 30, 5: 40, 6: 50, 7: 60, 8: 100}