Дана матрица целых чисел. Вводится число. Выяснить, какие строки и столбцы матрицы содержат данное число.
from random import random
N = 10
M = 15
matrix = []
for i in range(N):
row = []
for j in range(M):
row.append(int(random()*40)+10)
matrix.append(row)
for row in matrix:
print(row)
item = int(input("Number range(10,50): "))
print("Rows (index):", end=" ")
for i in range(N):
if item in matrix[i]:
print(i, end=" ")
print()
print("Columns (index):", end=" ")
for j in range(M):
for i in range(N):
if matrix[i][j] == item:
print(j, end=" ")
break
print()
С комментариями:
from random import random
N = 10
M = 15
matrix = []
# заполнение матрицы случайными числами
# от 10 до 49 включительно
for i in range(N):
row = []
for j in range(M):
row.append(int(random()*40)+10)
matrix.append(row)
# построчный вывод матрицы
for row in matrix:
print(row)
# ввод числа-элемента, которое надо найти в строках
# и столбцах матрицы
item = int(input("Number range(10,50): "))
# ПОИСК В СТРОКАХ
print("Rows (index):", end=" ")
# количество итераций цикла равно количеству строк
for i in range(N):
# если элемент есть в строке матрицы с индексом i,
if item in matrix[i]:
# то вывести индекс этой строки на экран
print(i, end=" ")
print()
# ПОИСК В СТОЛБЦАХ
print("Columns (index):", end=" ")
# Внешний цикл перебирает столбцы,
# количество итераций равно количеству стобцов.
for j in range(M):
# Внутренний цикл перебирает элементы в очередном столбце,
# количество итераций равно количеству строк, что соответствует
# количеству элементов в столбце.
for i in range(N):
# Если элемент с индексами i и j равен заданному числу,
if matrix[i][j] == item:
# то вывести индекс столбца на экран
print(j, end=" ")
# прервать выполнение вложенного цикла
break
print()
Пример выполнения:
[41, 46, 43, 35, 14, 41, 27, 44, 28, 33, 14, 35, 19, 34, 27]
[43, 47, 16, 17, 24, 13, 18, 30, 32, 21, 31, 39, 47, 29, 40]
[30, 46, 12, 17, 11, 12, 20, 10, 16, 29, 12, 19, 46, 12, 44]
[37, 25, 27, 10, 49, 17, 48, 30, 15, 40, 23, 33, 29, 31, 20]
[22, 47, 12, 43, 36, 44, 40, 13, 14, 32, 48, 18, 12, 30, 32]
[25, 11, 34, 41, 14, 20, 42, 25, 38, 26, 22, 44, 29, 15, 11]
[27, 13, 41, 20, 42, 13, 35, 43, 48, 35, 49, 17, 20, 12, 35]
[11, 24, 30, 13, 49, 10, 22, 31, 44, 33, 48, 21, 18, 11, 24]
[16, 20, 20, 31, 18, 43, 32, 17, 19, 39, 17, 39, 35, 47, 41]
[17, 36, 40, 16, 21, 12, 18, 30, 22, 13, 10, 42, 21, 48, 33]
Number range(10,50): 33
Rows (index): 0 3 7 9
Columns (index): 9 11 14