Вы каждый раз редактируете один и тот же словарь, поэтому не создаете новый, но редактируете старый.Поскольку вы каждый раз добавляете к списку тот же самый словарь , в конце список содержит один и тот же словарь n раз, и все правки обрабатываются в этом словаре.
Таким образом, вы должны создать новый словарь на каждой итерации в цикле for
:
people = []
humans = gethumans()
for human in humans:
number_people, people_data = People.data()
<b>person =</b> {
'name': human.name,
'age': human.age,
'sex': human.sex
}
people.append(person)
Я здесь заменил 'Sex'
на 'sex'
(так как странно иметь противоречивые имена ключей),и использовал human.sex
вместо human.name
.
Здесь people.data()
, похоже, ничего не делает, поэтому вы можете использовать понимание списка здесь, чтобы сгенерировать список:
people = [
{ 'name': human.name, 'age': human.age, 'sex': human.sex }
for human in humans
]
Это создаст список со всеми словарями.Учитывая, что цикл for
не имеет побочных эффектов (похоже, так и есть), вышеприведенное сработает.