Я хочу взять данные от пользователя и инициализировать список словарей. У меня есть следующий блок, который отлично работает.Инициализация списка словарей
people = []
for p in range(3):
cell = {"name": "","age" : 0, "education" : "","height" : 0}
cell["name"] = input("name:")
cell["age"] = int(input("age:"))
cell["education"] = input("education:")
cell["height"] = float(input("height:"))
people.append(cell)
Проблема у меня есть, почему следующий блок не работает для меня.
people = []
cell = {"name": "","age" : 0, "education" : "","height" : 0}
for p in range(0,3):
cell["name"] = input("name:")
cell["age"] = int(input("age:"))
cell["education"] = input("education:")
cell["height"] = float(input("height:"))
people.append(cell)
Я не понимаю, почему в конце итерации У меня есть список инициализирован с последним входом все 3 раза, я имею в виду, когда я использую эту строку:
cell["name"] = input("name:")
не должен предыдущее значение было заменено новым?
Вы все модификации и тот же объект 'cell' и добавляет его в' списке people'. –
О тесно связанной заметке: http: // stackoverflow.com/questions/240178/python-list-of-lists-changes-reflection-through-sublists-неожиданно –