Найти - Пользователи
Полная версия: Словарь списков. Проблема с наполнением.
Начало » Python для новичков » Словарь списков. Проблема с наполнением.
1
OrangeGrunge
Здравствуйте!

В общем случае имеется некий словарь, значения в котором являются списками.
Необходимо дополнить один из этих списков значением.

Пример:
 p = ['q','w','e']
r = dict.fromkeys(p,[])
r['q'].append(1)
print(r)

Что я получаю на выводе:
 {'q':[1],'w':[1],'e':[1]}

Что я хотел получить:
 {'q':[1],'w':[],'e':[]}

Подскажите, пожалуйста, в чём ошибка.
Спасибо.
FishHook
OrangeGrunge
r = dict.fromkeys(p,)
Это классическая ошибка из палаты мер и весов.
Список, который вы имеете в качестве значений - один и тот же. Вы передали в функцию ссылку на список, получили словарь, в котором N раз участвует один и тот же список. Он нигде не создается заново.
Вот так будет правильно
 p = ['q', 'w', 'e']
r = {l: [] for l in p}
r["q"].append(4)
print(r)
OrangeGrunge
Теперь всё стало достаточно очевидно. Спасибо, FishHook.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB