Как работает метод len() в Python?

Метод len() вернет длину массива, это ясно. Когда смотрю примеры кода, частенько вижу использование for in len(arr) - 1 или for in len(arr). Пожалуйста, объясните, как это работает или зачем это юзать в цикле .


Ответы (4 шт):

Автор решения: КИТ KIT

Если нужно произвести количество итераций равное по длине итерируемому объекту, то используется len.

Пример:

for i in range(len(_list)):...
# Иногда лучшим варианиом будет for i in enumerate(_list)
→ Ссылка
Автор решения: livefastdiewhenever

Допустим, у вас есть список: lst = [10, 20, 30, 40]

И вы хотите пройтись по всем его элементам, допустим, для итерации. С помощью функции len() измеряется длина списка. range() предоставляет последовательность целых чисел, которые можно использовать как индексы для элементов того же списка. Теперь можно пройтись по элементам в цикле:

for i in range(len(lst)):
    lst[i] += 1

Теперь в вашем списке элементы выглядят так: [11, 21, 31, 41].

Погуглите "Python введение в цикл for".

→ Ссылка
Автор решения: Proskima

Допустим вам нужно пройти по списку сколько - то раз и прибавить к каждому числу в списке + 1. Вы не знаете какой длиной этот список. Как раз для этого вам и нужен len(). С помощью len() вы узнаёте длину массива и таким образом проходите по списку столько раз и делает что вам нужно.

→ Ссылка
Автор решения: Victor VosMottor

Note: Вообще надо стараться избегать такого кода т.к.
часто это плохой код стайл и написание в лоб. Обычно можно делать так: (пример)

Вместо:

for i in range(len(lst)):
    lst[i] += 1 # do smth with lst[i]

Так:

lst = list(map(lambda i:i + 1, lst))

OR

lst = [i + 1 for i in lst]

Вам уже объяснили что это, но повторю:

Проитерироваться по списку, получая в i индекс текущего элемента


Иногда полезна функция enumerate():

>>> list(enumerate(['a', 'b', 'c']))
[(0, 'a'), (1, 'b'), (2, 'c')]

→ Ссылка