集合列表中循环期间的增量ID

时间:2018-10-23 12:23:14

标签: python list loops

我尝试在每次循环迭代时增加一个列表:

ads = []
page = {}
page['titre'] = "Title here"
page['nombre_pages'] = 396

i = 1 
total = 3

while i <= total:
    print(i)
    page['id'] = i
    ads.append(page)
    i += 1 

此回报

[{'titre': 'Title here', 'nombre_pages': 396, 'id': 3}, {'titre': 'Title here', 'nombre_pages': 396, 'id': 3}, {'titre': 'Title here', 'nombre_pages': 396, 'id': 3}]

我不明白为什么相同的ID是3次而不是ID:1,ID:2,ID:3

当打印页面['id']正常(递增)时,ads.append(页面['id'])也可用。

您能帮忙吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您仅通过以下方式创建单个“页面”对象:

page = {}

,并从ads中的多个索引位置进行引用。您可能想做些更接近的事情:

ads = []

i = 1 
total = 3

while i <= total:
    print(i)
    page = {}
    page['titre'] = "Title here"
    page['nombre_pages'] = 396
    page['id'] = i
    ads.append(page)
    i += 1 

或更惯用的:

ads = []
total = 3
for i in range(total):
    ads.append({
        'nombre_pages': 396,
        'titre': "Title here",
        'id': i,
    })