Обход коллекции настолько распространенная задача, что многие языки программирования решают это введением специального вида цикла. В Python можно воспользоваться циклом for ... in
для обхода списка.
user_names = ['petya', 'vasya', 'evgeny']
# name на каждой итерации свой собственный (локальный)
for name in user_names:
print(name)
# => "petya"
# => "vasya"
# => "evgeny"
Цикл знает, как перебирать элементы, и знает о том, когда они закончатся. В цикле создается переменная name
. На каждой итерации она принимает следующее значение элемента списка user_names
.
Этот цикл отлично подходит для задач агрегации:
def calculate_sum(coll):
sum = 0
for value in coll:
sum += value
return sum
print(calculate_sum([3, 2, -10, 38, 0])) # => 33
for ... in
— это больше, чем просто цикл для списков. Он используется для обхода всех коллекций в Python. Так ранее мы проходили уже пример коллекции в виде кортежей. Обходить их тоже можно с помощью for ... in
Для полного понимания принципов его работы нужно разбираться в темах, которые мы еще не проходили, среди них объекты, итераторы, магические методы. Если по-простому, то разные данные в Python могут притворяться коллекциями элементов. Самый простой пример — это строка: for...in
перебирает строку посимвольно.
greeting = 'Hello'
for symbol in greeting:
print(symbol)
# => "H"
# => "e"
# => "l"
# => "l"
# => "o"
Однако не следует путать строку со списком. Несмотря на внешнюю схожесть доступа к элементам строки по индексу, строка списком не является.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.