0Pricing
Python Academy · Урок

Вложенные списки и итерация

Работайте с вложенными списками и эффективно перебирайте их с помощью циклов for.

«Вложенные списки и итерация» — бесплатный урок Python Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Введение

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

Структура вложенного списка

matrix = [[1,2,3],[4,5,6],[7,8,9]] — это сетка 3×3. matrix[1][2] обращается к строке 1, столбцу 2 — это значение 6.
matrix = [[1,2,3],[4,5,6],[7,8,9]]
print(matrix[1][2])

Перебор строк

for row in matrix: print(row) выводит каждый вложенный список. row сам является списком, элементы которого можно получать по индексу.
matrix = [[1,2],[3,4]]
for row in matrix:
    print(row)

Вложенные циклы for

for row in matrix: for val in row: print(val) выводит каждый отдельный элемент.
matrix = [[1,2],[3,4]]
for row in matrix:
    for val in row:
        print(val, end=' ')

Уплощение вложенного списка

[x for row in matrix for x in row] убирает один уровень вложенности. Это вложенное выражение-генератор списка.
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

Создание сетки

Создайте сетку N×M: grid = [[0]*M for _ in range(N)] Используйте выражение-генератор списка, а не [[0]*M]*N, поскольку второй вариант создаёт связанные строки.
grid = [[0]*3 for _ in range(3)]
grid[0][0] = 1
print(grid)

Ошибка со связанными строками

grid = [[0]*3]*3 создаёт три ссылки на одну и ту же строку. Изменение одной строки изменяет их все. Всегда используйте выражение-генератор.
bad = [[0]*3]*3
bad[0][0] = 9
print(bad)  # all rows changed!

zip() для параллельной итерации

for a, b in zip(list1, list2) перебирает два списка параллельно. zip() останавливается на более коротком списке.
names = ['Alice', 'Bob']
scores = [90, 85]
for n, s in zip(names, scores):
    print(n, s)

enumerate() с вложенными списками

for i, row in enumerate(matrix): for j, val in enumerate(row): предоставляет и индексы, и значения.
matrix = [[1,2],[3,4]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        print(f'[{i}][{j}]={val}')

Сортировка списка списков

sorted(data, key=lambda x: x[1]) сортирует список по второму элементу каждого вложенного списка.
data = [['Bob',85],['Alice',90],['Charlie',78]]
data.sort(key=lambda x: x[1])
print(data)

Транспонирование матрицы

transposed = list(zip(*matrix)) преобразует строки в столбцы. Символ * распаковывает внешний список в аргументы для zip.
matrix = [[1,2,3],[4,5,6]]
print(list(zip(*matrix)))

Быстрая проверка

Как правильно создать сетку 3×3, заполненную нулями, чтобы избежать ошибки со связанными строками?

Итоги

Вложенные списки: обращайтесь к элементам с помощью [row][col], перебирайте их вложенными циклами for. Используйте выражение-генератор для создания сеток, zip() — для параллельной итерации, а zip(*matrix) — для транспонирования.

Продолжить обучение

Отличная работа! Перейдите к следующему уроку, чтобы продолжить развивать свои навыки.

Часто задаваемые вопросы

Урок «Вложенные списки и итерация» бесплатный?

Да — полный текст урока «Вложенные списки и итерация» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Вложенные списки и итерация»?

Работайте с вложенными списками и эффективно перебирайте их с помощью циклов for. Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Вложенные списки и итерация»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание списков и доступ к элементам
  2. Изменение списков
  3. Кортежи и неизменяемость
  4. Вложенные списки и итерация
← Назад к Python Academy