То же самое, но короче
Всё, что было в уроке, ты умеешь писать простыми средствами: цикл, счётчик, фильтрация списка. Этого хватает для любой задачи 9, и на экзамене этого достаточно.
Но есть три готовых инструмента, которые сокращают запись. Их стоит знать — и понимать, когда они помогают, а когда только запутывают.
1. enumerate — номер строки без отдельного счётчика
k = 0
for row in rows:
k = k + 1
...
# то же самое:
for k, row in enumerate(rows, 1):
...
Единица во втором аргументе и есть нумерация с первой строки. Забудешь её — нумерация пойдёт с нуля и ответ уедет.
2. set — различны ли числа
len(row) == len(set(row))
set выбрасывает повторы. Если после этого длина не изменилась — значит повторов и не было.
3. Counter — сколько раз встречается каждое
from collections import Counter
c = Counter(row)
print(sorted(c.values(), reverse=True))
Даёт профиль строки: [3, 1, 1, 1] — одно число трижды, остальные различны; [3, 3] — два числа по три раза; [1, 1, 1, 1, 1, 1] — все разные.