#python
Уявімо, що треба пройти по усім елементам циклу.
Це можна зробити дуже просто
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
Якщо ж треба мати доступ до елементу разом із його індексом, є такі варіанти
# range
fruits = ["apple", "banana", "cherry"]
for index in range(len(fruits)):
print(index, fruits[index])
# enumerate
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)
Що краще обрати - enumerate чи range?
1.
enumerate більш чисто виглядає та ще й оптимізована на рівні інтерпертатора2.
enumerate не має потенційних проблем з доступом по неіснуючому індексу3.
enumerate дозволяє задати початковий індекс для ітерації
for index, fruit in enumerate(fruits, start=1):
print(index, fruit)
Окей, а коли ж краще користуватись
range?- коли колекція елементів точно індексована
- коли не треба мати доступ до конкретного елементу за поточним індексом
for i in range(10):
print(i**2)