Вложенные циклы и создание матриц

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

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

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

Пример: Вложенные циклы для печати таблицы

Допустим, мы хотим распечатать таблицу умножения от 1 до 5. Для этого можно использовать вложенные циклы for.

for i in range(1, 6):
    for j in range(1, 6):
        print(f"{i * j:2}", end=" ")
    print()

Вывод:

 1  2  3  4  5 
 2  4  6  8 10 
 3  6  9 12 15 
 4  8 12 16 20 
 5 10 15 20 25 

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

Создание матриц

Матрица в Python — это список списков, где каждый внутренний список представляет собой строку матрицы. Используя вложенные циклы, можно создавать и изменять матрицы.

Создание матрицы с нуля

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

rows, cols = 3, 4
matrix = []

for i in range(rows):
    row = []
    for j in range(cols):
        row.append(i * cols + j)  # Пример заполнения матрицы
    matrix.append(row)

for row in matrix:
    print(row)

Вывод:

[0, 1, 2, 3]
[4, 5, 6, 7]
[8, 9, 10, 11]

В этом примере создается матрица 3x4, где элементы заполняются значениями, зависящими от их позиции.

Инициализация матрицы с одинаковыми значениями

Для инициализации матрицы с одинаковыми значениями можно использовать списковое умножение.

rows, cols = 3, 4
matrix = [[0] * cols for _ in range(rows)]

for row in matrix:
    print(row)

Вывод:

[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]

В этом примере создается матрица 3x4, где все элементы инициализируются значением 0.

Заполнение матрицы случайными числами

Для заполнения матрицы случайными числами можно использовать модуль random.

import random

rows, cols = 3, 4
matrix = [[random.randint(0, 9) for _ in range(cols)] for _ in range(rows)]

for row in matrix:
    print(row)

Вывод:

[2, 8, 1, 7]
[6, 4, 0, 3]
[5, 9, 2, 1]

В этом примере создается матрица 3x4, где каждый элемент — случайное число от 0 до 9.

Обработка матриц

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

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

Транспонирование матрицы — это процесс преобразования строк в столбцы и наоборот.

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

transposed = [[matrix[j][i] for j in range(len(matrix))] for i in range(len(matrix[0]))]

for row in transposed:
    print(row)

Вывод:

[1, 4, 7]
[2, 5, 8]
[3, 6, 9]

В этом примере создается транспонированная версия исходной матрицы.

Заключение

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

Last updated