Выяснить, в какой строке последовательность является возрастающей или убывающей. python

Задача: Дан целочисленный двумерный массив, размерности N х M. Выяснить, в какой строке последовательность является возрастающей или убывающей. Мой код:

import random

N = int(input('Количество строк:'))

M = int(input('Количество столбцов:'))
 
A = [[0] * M for i in range(N)]
 
for i in range(N):

    for j in range(M):

        A[i][j] = random.randint(0, 10)
 
for i in A:

        print(f'{i}', end='')
        print()

for i in range(N):

    for j in range(M):
        if A[i]>A[i+1]:
            print ('строка уменьшается')

Не могу понять, как пройтись по каждой строке и определить там, где убывает, а где возрастает. Пытался как-то пройтись по массиву, но ничего не вышло толкового.


Ответы (2 шт):

Автор решения: Эникейщик

Строка убывает, если каждый элемент меньше предыдущего.

Строка возрастает, если каждый элемент больше предыдущего.

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

→ Ссылка
Автор решения: SergFSM

можете сделать так, хотя, с точки зрения эффективности, это не лучший вариант:

from random import choices

n = 5 #int(input('Количество строк:'))
m = 5 #int(input('Количество столбцов:'))
a = [choices(range(10), k=m) for i in range(n)]

for i in a:
    if all(x>=y for x,y in zip(i,i[1:])):
        print('строка убывает')
    elif all(x<=y for x,y in zip(i,i[1:])):
        print('строка возрастает')
    else:
        print('строка не упорядочена')
→ Ссылка