Часто в выражениях типа python на SO часто встречаются выражения этого типа. Либо для доступа ко всем элементам итерации
for i in range(len(a)):
print(a[i])
Это всего лишь громоздкий способ написания:
for e in a:
print(e)
Или для назначения элементам итерации:
for i in range(len(a)):
a[i] = a[i] * 2
Что должно быть таким же:
for i, e in enumerate(a):
a[i] = e * 2
# Or if it isn't too expensive to create a new iterable
a = [e * 2 for e in a]
Или для фильтрации по индексам:
for i in range(len(a)):
if i % 2 == 1: continue
print(a[i])
Что может быть выражено следующим образом:
for e in a [::2]:
print(e)
Или, когда вам просто нужна длина списка, а не его содержимое:
for _ in range(len(a)):
doSomethingUnrelatedToA()
Что может быть:
for _ in a:
doSomethingUnrelatedToA()
В python мы имеем enumerate
, slicing, filter
, sorted
и т.д.... Поскольку конструкции python for
предназначены для итерации по итерам, а не только диапазоны целых чисел, существуют ли реальные -World, где вам нужно in range(len(a))
?