Модуль: ОП-6. ЗАНЯТИЕ 15. Вложенные списки (двумерные массивы)


1. Вложенные списки (двумерные массивы, матрицы)

☰ Теория

Вложенные списки (двумерные массивы, матрицы)

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

Вот пример вложенного списка в Python:

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

Этот код создает список nested_list, который содержит три вложенных списка в качестве своих элементов. Каждый из вложенных списков представляет строку матрицы.


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

value = nested_list[1][1] 
print(value) # Вывод: 5 

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


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

Например:

for row in nested_list:
    for item in inner_list:
        print(item) 

Этот код выведет все элементы вложенного списка.


Также вы можете создавать вложенные списки динамически с помощью генераторов списков:

matrix = [[0 for _ in range(3)] for _ in range(3)]
print(matrix)      # Вывод: [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 

Этот код создает матрицу 3x3, заполненную нулями, используя генератор списка.

 

Перебор элементов матрицы

Перебирать элементы матрицы можно как по строкам, так и по столбцам.

Перебор по строкам

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# Перебор по строкам
for row in matrix:
    print(*row) 

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

Тоже самое, но перебор по индексам

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# Перебор по строкам
rows = len(matrix)    # количество строк
cols = len(matrix[0]) # количество столбцов
for i in range(rows):
    for j in range(cols)
        print(a[i][j], end=' ')
    print()    # после вывода всех элементов строки
               # необходимо перейти на новую строку
Сравните этот код и следующий


Перебор по столбцам
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
# Получаем количество строк и столбцов в матрице 
rows = len(matrix) 
cols = len(matrix[0]) 
# Предполагаем, что все строки имеют одинаковый размер 
# Перебор по столбцам 
for j in range(cols): 
    for i in range(rows): 
        print(matrix[i][j])
    print()



Ввод элементов матрицы с клавиатуры

Чаще всего элементы матрицы задаются построчно.
# Запрос размеров матрицы у пользователя
num_rows, num_cols = map(int, input().split())

# Создание пустой матрицы
matrix = []

# Ввод элементов матрицы построчно
for i in range(num_rows):
    row_values = list(map(int, input().split()))
    matrix.append(row_values)

# Вывод полученной матрицы
for row in matrix:
    print(row)

Формат входных данных
В первой строке записаны два числа n и m - количество строк и столбцов матрицы. Далее в каждой из n строк записано по m чисел - элементы матрицы.

Формат выходных данных
Выведите на экран матрицу, в которой каждый элемент равен удвоенному значению элемента исходной матрицы.
Примеры
Входные данныеВыходные данные
1 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
2 4 6 8 10
2 4 6 8 10
2 4 6 8 10
2 4 6 8 10

Напишите программу
Auto
       

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python8
Комментарий учителя