Вирази цього типу часто зустрічаються у питаннях 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
, нарізка, filter
, sorted
і т.д. ... Як пітон for
конструкція призначена перебрати ітеріруемие і не тільки в діапазон цілих чисел, чи є реальні споживчі випадки , коли вам потрібні in range(len(a))
?
range(len(a))
це, як правило, люди, які досить недосвідчені в роботі з Python (хоча і не обов’язково з програмуванням загалом).