Как работает метод len() в Python?
Метод len() вернет длину массива, это ясно. Когда смотрю примеры кода, частенько вижу использование for in len(arr) - 1 или for in len(arr). Пожалуйста, объясните, как это работает или зачем это юзать в цикле .
Ответы (4 шт):
Если нужно произвести количество итераций равное по длине итерируемому объекту, то используется len.
Пример:
for i in range(len(_list)):...
# Иногда лучшим варианиом будет for i in enumerate(_list)
Допустим, у вас есть список: lst = [10, 20, 30, 40]
И вы хотите пройтись по всем его элементам, допустим, для итерации. С помощью функции len() измеряется длина списка. range() предоставляет последовательность целых чисел, которые можно использовать как индексы для элементов того же списка. Теперь можно пройтись по элементам в цикле:
for i in range(len(lst)):
lst[i] += 1
Теперь в вашем списке элементы выглядят так: [11, 21, 31, 41].
Погуглите "Python введение в цикл for".
Допустим вам нужно пройти по списку сколько - то раз и прибавить к каждому числу в списке + 1. Вы не знаете какой длиной этот список. Как раз для этого вам и нужен len(). С помощью len() вы узнаёте длину массива и таким образом проходите по списку столько раз и делает что вам нужно.
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')]