901.py

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел Определите наибольший номер строки таблицы, для чисел которой выполнены оба условия: 1. в строке есть одно число, которое повторяется трижды, остальные четыре числа различны; 2. среднее арифметическое всех повторяющихся чисел строки больше среднего арифметического всех её чисел. В ответе запишите только число.
"""
Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел
Определите наибольший номер строки таблицы, для чисел которой выполнены оба условия:

    1. в строке есть одно число, которое повторяется трижды, 
    остальные четыре числа различны;
    2. среднее арифметическое всех повторяющихся чисел строки
    больше среднего арифметического всех её чисел.

В ответе запишите только число.
"""
maxi = 0
n = 0
for i in open('901'):
    n = n + 1
    # переводим строку в список из семи целых чисел
    a = [int(x) for x in i.split()]
    # числа, встречающиеся ровно 3 раза и ровно 1 раз
    pov3 = [x for x in a if a.count(x) == 3]
    pov1 = [x for x in a if a.count(x) == 1]
    # одно число повторяется трижды, остальные четыре различны
    if len(pov3) == 3 and len(pov1) == 4:
        good = sum(pov3) / 3
        cool = sum(a) / 7
        # среднее повторяющихся больше среднего всех
        if good > cool:
            maxi = n
print(maxi)

"""
Ответ: 15958
"""
"""
Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел
Определите наибольший номер строки таблицы, для чисел которой выполнены оба условия:

    1. в строке есть одно число, которое повторяется трижды, 
    остальные четыре числа различны;
    2. среднее арифметическое всех повторяющихся чисел строки
    больше среднего арифметического всех её чисел.

В ответе запишите только число.
"""
maxi = 0
n = 0
for i in open('901'):
    n = n + 1
    # переводим строку в список из семи целых чисел
    a = [int(x) for x in i.split()]
    # числа, встречающиеся ровно 3 раза и ровно 1 раз
    pov3 = [x for x in a if a.count(x) == 3]
    pov1 = [x for x in a if a.count(x) == 1]
    # одно число повторяется трижды, остальные четыре различны
    if len(pov3) == 3 and len(pov1) == 4:
        good = sum(pov3) / 3
        cool = sum(a) / 7
        # среднее повторяющихся больше среднего всех
        if good > cool:
            maxi = n
print(maxi)

"""
Ответ: 15958
"""

Репозиторий на GitHub