# Как Итерировать (Циклически Проходить) По Списку в Python

В этом уроке **вы узнаете, как выполнять итерации (или циклы) по списку в Python**. Вы научитесь использовать циклы for, циклы while, понимания (comprehensions) и многое другое. Более того, вы узнаете, когда каждый из этих методов является наилучшим для использования. Учитывая, что существует _множество_ различных способов достижения этого, понимание того, какой метод использовать, может быть полезным.

Списки Python являются одной из основных структур данных в языке. Они упорядочены и индексируемы, что означает, что их порядок важен и что вы можете получать доступ к элементам на основе их порядка. Они также гетерогенны, что означает, что они могут содержать множество различных типов данных. Благодаря их универсальности, умение работать с ними является важным навыком для любого уровня Python

К концу этого урока вы узнаете:

* Как перебирать списки Python, используя циклы `for`, `while` и понимания
* Как улучшить итерацию с помощью функции `range()` и функции `enumerate()`
* Как перебирать несколько списков в Python&#x20;
* Как перебирать списки и манипулировать ими в Python

Оглавление

* [Руководство по перебору списка в Python](#rukovodstvo-po-pereboru-spiska-v-python)
* [Как перебрать список в Python с помощью цикла `For`](#kak-perebrat-spisok-v-python-s-pomoshyu-cikla-for)
* [Как перебирать список в Python с помощью цикла `while`](#kak-perebirat-spisok-v-python-s-pomoshyu-cikla-while)
* [Как перебирать список в Python с помощью функции List Comprehension](#kak-perebirat-spisok-v-python-s-pomoshyu-funkcii-list-comprehension)
* [Как перебирать список с элементами индекса, используя диапазон `Range`](#kak-perebirat-spisok-s-elementami-indeksa-ispolzuya-diapazon-range)
* [Как перебирать список с помощью enumerate](#kak-perebirat-spisok-s-pomoshyu-enumerate)
* [Как перебирать несколько списков Python поэлементно](#kak-perebirat-neskolko-spiskov-python-poelementno)
* [Как перебирать и манипулировать списками Python](#kak-perebirat-i-manipulirovat-spiskami-python)
* [Заключение](#zaklyuchenie)
* [Дополнительные ресурсы](#dopolnitelnye-resursy)

### Руководство по перебору списка в Python

В таблице ниже представлены различные способы перебора списка в Python. Чтобы узнать больше о каждом из этих методов, продолжайте читать для более глубокого изучения.

| Метод              | Лучше всего для…                                               |
| ------------------ | -------------------------------------------------------------- |
| for loop           | Самая простая реализация и понятная для других                 |
| while loop         | Может быть прервано при заданном условии                       |
| list comprehension | Самый питонический                                             |
| `range()`          | Может использоваться для доступа только к нескольким элементам |
| `enumerate()`      | Может получить доступ как к индексу, так и к элементу          |
| `zip()`            | Может перебирать несколько списков поэлементно                 |
| `map()`            | Может перебирать и манипулировать элементами списка.           |

Один из самых простых способов перебрать список в Python - это [использовать цикл for](https://datagy.io/python-for-loop/). Цикл for позволяет вам итерировать по итерируемому объекту (например, списку) и выполнять данное действие. Этот подход интуитивно понятен, поскольку он проходит через каждый элемент в списке (если явно не остановлен).

### Как перебрать список в Python с помощью цикла `For`

Давайте рассмотрим пример того, как мы можем перебирать список чисел в Python с использованием цикла for:

```python
# Looping Over a List in Python with a For Loop
numbers = [1, 2, 3, 4, 5]

for number in numbers:
    print(number)

# Returns:
# 1
# 2
# 3
# 4
# 5
```

Мы можем перебирать каждый элемент списка, используя любое имя итератора, которое нам нравится. В данном случае мы используем слово `number`, чтобы сделать наш код более чистым для написания и чтения.

### Как перебирать список в Python с помощью цикла `while`

В этом разделе вы узнаете, как осуществлять перебор списка в Python с помощью цикла while. Если цикл for является примером определенной итерации, то цикл while является примером неопределенной итерации. Это означает, что цикл будет продолжать итерации до тех пор, пока не будет остановлен.

Давайте посмотрим, как мы можем использовать цикл while в Python, чтобы перебрать каждый элемент списка, рассмотрев пример:

```python
# Using a Python While Loop to Iterate Over a List
numbers = [1, 2, 3, 4, 5]

i = 0
while i < len(numbers):
    print(numbers[i])
    i += 1

# Returns:
# 1
# 2
# 3
# 4
# 5
```

Давайте разберем, что мы здесь сделали:

1. Мы создали список `numbers`, который содержит все наши числа.
2. Мы затем создали индексное значение `i`, которое установили в ноль
3. Затем мы создали цикл `while`, который продолжается до тех пор, пока значение `i` меньше длины списка.
4. В нашем цикле мы выводим i-й индекс списка
5. Наконец, мы увеличиваем значение `i` на 1 с использованием оператора расширенного присваивания

### Как перебирать список в Python с помощью функции List Comprehension

В этом разделе вы узнаете уникальный способ перебора каждого элемента в списке. Компрехенсии в Python — это компактный способ итерации по списку. В основном они используются для _создания_ списков, как с нуля, так и путем модификации элементов внутри списка.

Давайте посмотрим, как мы можем использовать понимание списка в Python для перебора списка. В этом примере мы используем понимание списка, чтобы напечатать каждый элемент списка. Для большего количества примеров использования этих мощных структур.

```python
# Using List Comprehensions to Iterate Over a List
numbers = [1, 2, 3, 4, 5]
[print(number) for number in numbers]

# Returns:
# 1
# 2
# 3
# 4
# 5
```

### Как перебирать список с элементами индекса, используя диапазон Range

Иногда вам может понадобиться итерировать по списку, получая доступ как к элементу, так и к индексу элемента. Для этого мы можем использовать функцию `range()`. Я включил этот метод в описание в основном для полноты картины, так как в следующем разделе вы узнаете о более удобном способе выполнения этой задачи с помощью функции `enumerate()`

Однако, это общепринятый способ итерации по списку в Python с одновременным доступом к индексу и элементу. Давайте посмотрим, как это выглядит:

```python
# Looping Over a Python List and the Index Items
numbers = [1, 2, 3, 4, 5]

for idx in range(len(numbers)):
    print(idx, numbers[idx])

# Returns:
# 0 1
# 1 2
# 2 3
# 3 4
# 4 5
```

### Как перебирать список с помощью enumerate

Точно так же, как в показанном выше примере, мы можем легко перебирать каждый элемент в списке и получать доступ к его индексу, используя функцию `enumerate()` в Python. Функция `enumerate()` возвращает как индекс, так и элемент, что означает, что вы можете легко распаковать их в вашем цикле.

Для получения более подробной информации об [функции `enumerate()`](https://datagy.io/python-enumerate/), ознакомьтесь с моим подробным руководством. Давайте посмотрим, как это выглядит:

```python
# Iterating Over a List with Python's enumerate()
numbers = [1, 2, 3, 4, 5]

for idx, number in enumerate(numbers):
    print(idx, number)

# Returns:
# 0 1
# 1 2
# 2 3
# 3 4
# 4 5
```

### Как перебирать несколько списков Python поэлементно

В этом разделе вы научитесь одновременно итерировать по нескольким спискам в Python с использованием функции `zip()`. Эта функция позволяет вам итерировать одновременно по нескольким спискам, то есть доступ к первому элементу каждого списка происходит одновременно, затем ко второму и так далее.

Давайте рассмотрим пример того, как мы можем одновременно перебирать два списка:

```python
# Looping Over Multiple Lists Element-wise in Python
numbers = [1, 2, 3, 4, 5]
numbers2 = [6, 7, 8, 9, 10]

for num1, num2 in zip(numbers, numbers2):
    print(num1, num2)

# Returns:
# 1 6
# 2 7
# 3 8
# 4 9
# 5 10
```

Давайте разберем, что мы здесь сделали:

1. Мы определили два списка, оба содержат числа
2. Мы затем получили доступ к числам из обоих списков в объекте `zip`, возвращенном в результате их совмещения.
3. Затем мы распечатали оба эти значения

В следующем разделе вы узнаете, как выполнять итерацию по элементам списка и управлять ими.

### Как перебирать и манипулировать списками Python

В этой заключительной секции вы научитесь использовать функцию `map()` в Python для итерации по элементам списка и их преобразования с помощью функции трансформации. Функция принимает объект функции трансформации и список в качестве входных данных и возвращает измененный список.

Чтобы узнать больше о функции `map()` в Python, ознакомьтесь с моим подробным руководством здесь. Давайте рассмотрим пример:

```python
# Using map() to Iterate Over a List and Manipulate its Items
numbers = [1, 2, 3, 4, 5]

transformed = list(map(lambda x: x * 2, numbers))
print(transformed)

# Returns:
# [2, 4, 6, 8, 10]
```

Давайте разберем, что мы здесь сделали:

1. Мы создали список чисел
2. Мы создали новый список `transformed`, который конвертирует результат функции `map` в список. Функция `map` использует анонимную функцию (lambda), которая умножает каждое значение на 2. Функция затем применяет эту функцию преобразования к каждому элементу в списке, `numbers`.

## Заключение

В этом учебном пособии вы научились итерировать (или выполнять цикл) по списку в Python различными способами. Вы узнали, какой метод лучше всего подходит для каждой ситуации. Вы научились использовать цикл for, цикл while и понятие спискового включения. Затем вы научились использовать функцию `range()` и функцию `enumerate()` для итерации по спискам и индексам. Наконец, вы узнали, как итерировать по двум спискам поэлементно, а также как итерировать и трансформировать элементы списка.

### Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:

* Функция карты Python: преобразование итераций без циклов
* Перечисление Python: цикл Python со счетчиками индексов
* Учебное пособие по циклу Python For – все, что вам нужно знать!
* Списки Python: полный обзор
* [Списки Python: официальная документация](https://docs.python.org/3/tutorial/datastructures.html)
