Получение идентификатора поля при использовании для цикла с объектами - PullRequest
1 голос
/ 01 апреля 2011

Каков наилучший способ получить for число при каждом запуске?

Код:

fields = []

objects = otherobjects.all() 
for object in objects
    fields.append(('id_is_#', object))

Я хочу поставить ID на # место. Идентификатор будет сгенерирован ++ способом.

Ответы [ 3 ]

1 голос
/ 01 апреля 2011

Понимание списка:

objects = otherobjects.all()
fields = [('id_is_%d' % id, ob) for id, ob in enumerate(objects)]

Использование объекта в качестве имени переменной может вызвать проблемы ...

1 голос
/ 01 апреля 2011
fields = []
objects = otherobjects.all() 

for id, obj in enumerate(objects)
    fields.append(('id_is_' + id, obj))
0 голосов
/ 01 апреля 2011

Строковая модуляция лучше для этого.

fields.append(("id_is_%s" % id, object))

Редактировать: Небольшая коррекция стиля на случай, если вы имеете в виду что-то немного другое, вот лучший пример

for obj in objects:
    fields.append(("id_is_%s" % obj.id, obj)
...