© Яценко Р.Н., 2019-2020
Массивы, положение элементов в которых описывается двумя номерами, называются двумерными
Их можно представить в виде прямоугольной таблицы
1 | 2 | 3 |
4 | 5 | 6 |
a[0][0] |
a[0][1] |
a[0][2] |
a[1][0] |
a[1][1] |
a[1][2] |
Действия с элементами двумерного массива
a = [[1, 2, 3], [4, 5, 6]] print(a[0]) print(a[1]) b = a[0] print(b) print(a[0][2]) a[0][1] = 7 print(a) print(b) b[2] = 9 print(a[0]) print(b)
Вывод двумерного массива
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]] for i in range(len(a)): for j in range(len(a[i])): print(a[i][j], end=' ') print()
Сумма элементов двумерного массива
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]] s = 0 for i in range(len(a)): for j in range(len(a[i])): s += a[i][j] print(s)
Создание – неправильное решение
n
и количество столбцов m
n
×m
, заполненный нулямиn = 3 m = 4 a = [[0] * m] * n a[0][0] = 5 print(a[1][0])
Создание – правильное решение
n = 3 m = 4 a = [0] * n for i in range(n): a[i] = [0] * m print(a)
При помощи генератора
n = 3 m = 4 a = [[0] * m for i in range(n)] print(a)
Ввод двумерного массива
n
строк, каждая из которых содержит m
чисел, разделенных пробелами# в первой строке ввода идёт количество строк массива n = int(input()) a = [] for i in range(n): row = input().split() for i in range(len(row)): row[i] = int(row[i]) a.append(row)
При помощи генератора
# в первой строке ввода идёт количество строк массива n = int(input()) a = [] for i in range(n): a.append([int(j) for j in input().split()])
При помощи двойного генератора
# в первой строке ввода идёт количество строк массива n = int(input()) a = [[int(j) for j in input().split()] for i in range(n)]
from random import randint n = 2 m = 3 a = [[randint(1, 10) for j in range(m)] for i in range(n)] print(a) for i in range(n): for j in range(m): a[i][j] = a[i][j] ** 2 print(a)
В двумерном массиве к элементам четных столбцов каждой строки прибавить элемент первого столбца этой строки
from random import randint n = 2 m = 4 a = [[randint(1, 10) for j in range(m)] for i in range(n)] print(a) for i in range(n): for j in range(m): if j % 2 != 0: a[i][j] += a[i][0] print(a)
Определить, есть ли в массиве элемент, равный 0
from random import randint n = 2 m = 3 a = [[randint(0, 5) for j in range(m)] for i in range(n)] print(a) found = 0 for i in range(n): for j in range(m): if a[i][j] == 0: found = 1 if found: print('YES') else: print('NO')
© Яценко Р.Н., 2019-2020