Уровень: Базовый
Условие задачи:
Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:
– в строке только одно число повторяется трижды, остальные числа различны;
– квадрат суммы всех повторяющихся чисел строки больше квадрата суммы всех её неповторяющихся чисел.
Теоретическая справка:
Запоминайте способ создания генератора списков copied, чтобы можно было решать такие прототипы 9 номера на ура!
Код решения:
Комментарии к коду:
- cnt = 0
Инициализируем счетчик cnt, который будет подсчитывать количество строк, удовлетворяющих заданным условиям. - for s in open('9.csv'):
Открываем файл '9.csv' для чтения и перебираем каждую строку файла поочередно. - M = [int(x) for x in s.split(';')]
Разделяем строку s на элементы по разделителю ';', преобразуем их в целые числа и сохраняем в списке M. - copied = [x for x in M if M.count(x) == 3]
Создаем список copied, включающий элементы списка M, которые встречаются ровно 3 раза. - nor_copied = [x for x in M if M.count(x) == 1]
Создаем список nor_copied, включающий элементы списка M, которые встречаются ровно 1 раз - if len(copied) == 3 and len(nor_copied) == 3:
Проверяем, что в списке copied ровно 3 элемента, и в списке nor_copied также ровно 3 элемента. - if sum(copied) 2 > sum(nor_copied) 2:
Сравниваем квадраты суммы элементов списка copied и квадрат суммы элементов списка nor_copied. - cnt += 1
Увеличиваем счетчик cnt на 1, если выполняются предыдущие условия. - print(cnt)
Выводим значение счетчика cnt, которое содержит количество строк, удовлетворяющих условиям.