0
0 комментариев

Сама задача с Питонтьютора:

Дан список чисел. Посчитайте, сколько в нем пар элементов, равных друг другу. Считается, что любые два элемента, равные друг другу образуют одну пару, которую необходимо посчитать.

Я решил ее намного более громоздко, и после решения там показываются еще решения других участников. Там я увидел очень интересное решение всего в 2 строки. Но я так и не смог в нем разобраться.

a = input().split() # например 1 1 1 1 1
print(sum(a.count(x) - 1 for x in a) // 2)

Я вроде знаю что такое генераторы, да и что такое sum и a.count(x) по отдельности, но тут я это не могу осознать. Пробовал даже с помощью визуализатора. Кто нибудь может обьяснить как это работает?


Добавить комментарий