Форум сайта python.su
0
Матрицу размером 5х10 заполните случайными двоичными цифрами (0 и 1). Определите номер строки с наибольшим количеством нулей.
Офлайн
124
from random import randint matrix = [[randint(0, 1) for _ in range(10)] for _ in range(5)] rows_min = [1] min_sum = sum(matrix[0]) for n, i in enumerate(matrix[1:], 2): s = sum(i) if s < min_sum: rows_min = [n] min_sum = s elif s == min_sum: rows_min.append(n) for i in matrix: print(i) if len(rows_min) == 1: print(f'строка с наибольшим количеством нулей: {rows_min[0]}') else: print(f'строки с наибольшим количеством нулей: {",".join(map(str, rows_min))}')
Офлайн
857
>>> import random >>> import pprint >>> >>> matrix = [[random.choice((0, 1)) for _ in range(10)] for _ in range(5)] >>> pprint.pprint(matrix) [[1, 0, 1, 1, 0, 1, 1, 1, 0, 0], [1, 0, 0, 1, 0, 0, 0, 1, 1, 1], [1, 0, 0, 0, 0, 1, 0, 0, 1, 1], [1, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1]] >>> >>> out = max(enumerate(matrix, 1), key=lambda i: i[1].count(0))[0] >>> out 4 >>>
>>> import random >>> import pprint >>> >>> matrix = [[random.choice((0, 1)) for _ in range(10)] for _ in range(5)] >>> pprint.pprint(matrix) [[1, 1, 1, 0, 0, 0, 1, 0, 0, 1], [1, 1, 0, 0, 0, 1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 1, 0, 1], [0, 1, 1, 0, 0, 1, 0, 0, 1, 1], [1, 1, 0, 1, 1, 1, 1, 1, 0, 0]] >>> >>> zeros = tuple(i.count(0) for i in matrix) >>> >>> out = tuple(n for n, i in enumerate(zeros, 1) if i == max(zeros)) >>> out (3,) >>>
>>> import random >>> import pprint >>> >>> matrix = [[random.choice((0, 1)) for _ in range(10)] for _ in range(5)] >>> pprint.pprint(matrix) [[0, 0, 0, 0, 1, 0, 1, 0, 0, 1], [0, 1, 0, 1, 1, 1, 0, 0, 0, 1], [0, 1, 0, 1, 0, 1, 1, 0, 1, 1], [1, 0, 1, 0, 0, 0, 0, 1, 1, 1], [1, 1, 0, 0, 0, 1, 0, 0, 0, 0]] >>> >>> zeros = tuple(i.count(0) for i in matrix) >>> >>> out = tuple(n for n, i in enumerate(zeros, 1) if i == max(zeros)) >>> out (1, 5) >>>
Отредактировано py.user.next (Апрель 19, 2022 03:32:43)
Офлайн