Найти - Пользователи
Полная версия: Список словарей. Как сделать?
Начало » Python для новичков » Список словарей. Как сделать?
1
Пытон
slovar = {"name":"", "dr": "", "predmet":""}
base = []
for n in range(2):
slovar["name"]=input("Введите имя:")
slovar["dr"]=input("Введите дату рождения:")
slovar["predmet"]=input("Введите любимую вещь:")
base.append(slovar)

print (base)
При таком раскладе получится список с двумя ссылками на один и тот же словарь в котором будут данные, которые пользователь внёс последними. Как же получить список словарей с различными данными, с ссылками в списке на разные словари? Что-то я не соображу. Или я, может быть, вообще совсем не так пытаюсь сделать подобный паскалевскому массив из записей (record)?

п.с. ну и ме-е-е-е-е-е-е-е-е-е-е-едленно же работает ваш сайт! Загружен запросами по самое не балуйся, что ль?
Rodegast
base.append(slovar.copy())
bw
base = []
for n in range(2):
slovar = {}
slovar["name"]=input("Введите имя:")
slovar["dr"]=input("Введите дату рождения:")
slovar["predmet"]=input("Введите любимую вещь:")
base.append(slovar)

print (base)
..bw
Пытон
Cпасибо ответившим.
Я пока что воспользовался модулем copy и его функцией deepcopy для создания полностью отдельной копии словаря. А то метод copy, как заявляет моя книга, делает лишь “поверхностную” копию. Т.е. если словарь содержит какой-нибудь вложенный список, то он-то и не будет являться полной копией в создаваемом дубликате, а будет ссылкой на этот список из словаря, который дублируют.
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