Форум сайта python.su
0
Добрый день.
Задача создать словарь. Ключами словаря должны стать элементы списка keys, а элементами словаря должны стать элементы списка els. т.е.:
keys = [1,2,3,4] els = [6,7,8,9] dict1 = { 1: [6], 2: [7], 3: [8], 4: [9] }
dict1 = {key: [el for el in els] for key in keys} for key in dict1: print(key, dict1[key])
1 [6, 7, 8, 9] 2 [6, 7, 8, 9] 3 [6, 7, 8, 9] 4 [6, 7, 8, 9]
Отредактировано SomethingButNotNickName (Янв. 12, 2018 15:29:32)
Офлайн
0
Вернее, почему не срабатывает я уже понял, как исправить?
И можно ли в качестве элемента записать не список, а голое число?
dict1 = { 1: 6, 2: 7, 3: 8, 4: 9 }
Офлайн
0
Решение найдено.
dict1 = {key: el for key, el in zip(keys, els)}
Офлайн
221
Замечание есть - читать документацию
>>> els = [6,7,8,9] >>> keys = [1,2,3,4] >>> dict(zip(keys, els)) {1: 6, 2: 7, 3: 8, 4: 9}
Офлайн
186
>>> keys = [1,2,3,4] >>> els = [6,7,8,9] >>> { k:v for k,v in zip(keys, els) } {1: 6, 2: 7, 3: 8, 4: 9} >>> { keys.pop():els.pop() for _ in xrange(len(keys)) } {1: 6, 2: 7, 3: 8, 4: 9}
Офлайн