Увеличение идентификатора во время цикла в списке коллекций - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь увеличивать список на каждой итерации цикла:

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}]

Я не понимаю, почему один и тот же идентификатор 3 раза, а не идентификатор: 1, id: 2, id: 3

Когда печать страницы ['id'] в порядке (увеличение), также доступен ads.append (page ['id']).

Вы можете помочь ?

Спасибо

1 Ответ

0 голосов
/ 23 октября 2018

вы создаете только один объект "страницы", т. Е. Делаете:

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,
    })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...