В каких строках и столбцах матрицы содержится элемент на Python

Дана матрица целых чисел. Вводится число. Выяснить, какие строки и столбцы матрицы содержат данное число. 

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

  Python: Создание объекта и его основные характеристики
Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Python для начинающих
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x