【发布时间】:2019-03-12 05:02:00
【问题描述】:
我想创建一个列表,其中包含 x 个字典,所有字典都包含相同的键但具有不同的值,这些值在 for 循环中生成:
类似
[{'name': Brenda, 'Age': 22, 'Sex': Female},
{'name': Jorda, 'Age': 32, 'Sex': Male},
{'name': Richard, 'Age': 54, 'Sex': Male}]
我的代码是这样的:
people = []
person = {}
humans = gethumans()
for human in humans:
number_people, people_data = People.data()
person['name'] = human.name
person['age'] = human.age
person['Sex'] = human.name
people.append(person)
我的输出是这样的:
[{'name': Richard, 'Age': 54, 'Sex': Male},
{'name': Richard, 'Age': 54, 'Sex': Male}
{'name': Richard, 'Age': 54, 'Sex': Male}]
由于字典值被替换而不是添加,它只是附加了同一个字典。我该如何解决这个问题?
【问题讨论】:
-
gethumans在这里做什么? -
它是伪的,但它给了我我需要的数据列表
-
您在循环的每次迭代中都分配给 同一个字典。将
person = {}移入循环 -
与整数不同,Python 字典是 可变 对象。也就是说,您可以通过引用他们来更改他们的内容。
标签: python django dictionary for-loop