I need to loop through a queryset and put the objects into a dictionary along with the sequence number, i, in which they appear in the queryset. However a Python for loop doesn’t seem to provide a sequence number. Therefore I’ve had to create my own variable i and increment it with each loop. I’ve done something similar to this, is this the cleanest solution?
JavaScript
x
7
1
ledgers = Ledger.objects.all()
2
i = 0
3
4
for ledger in ledgers:
5
print('Ledger no '+str(i)+' is '+ledger.name)
6
i += 1
7
Advertisement
Answer
enumerate(…)
[Python-doc] is designed for that:
JavaScript
1
4
1
ledgers = Ledger.objects.all()
2
3
for i, ledger in enumerate(ledgers):
4
print(f'Ledger no {i} is {ledger.name}')