Как составить массив из чётных элементов матрицы на Python?

Всем добрый день, выполняю задание программированию на python. В задании требуется изначально ввести какую-то матрицу, и далее на основе введенной пользователем матрицы, вывести одномерный массив, содержащий положительные элементы введенной матрицы.
Код:
from math import *
n = int(input('Введите число строк и столбцов:'))
m = []
k = []
i = 0
for i in range(n):
     m.append([])
     for j in range(n):
          m[i].append(float(input()))
print(m)
for i in range(len(m)):
     if (m[i][j]) % 2 == 0:
          k.append(m[i][j])
     i += 1
print('Четные элементы матрицы:', k)

5fc7a5d1b10ff584444788.png
  • Вопрос задан
  • 416 просмотров
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
В заголовке у вас про четные, а в теле задания - плолжительные. Программа как бы ищет четные. Но числа float же, для них четность не имеет смысла. Вам нужно вместо float при вводе приводить к int.

edit:
А еще у вас при обходе матрицы только один цикл. А надо так же как при вводе делать двумя вложенными циклами.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmshar
Если список списков уже создан, например:
a=[[1,2,4],[2,3,4],[7,9,2],[3,5,6],[8,5,5]]

то построить список только его четных элементов можно вот так:
rez_a = [x for x in [item for sublist in a for item in sublist ] if x%2==0]

Результат:
Out[2]: [2, 4, 2, 4, 2, 6, 8]
Если вы ошиблись в условии, то переделать мой код под ваши потребности трудности не должно составить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы