Функция подсчёта повторяющихся элементов в итерируемом объекте
Нужно написать функцию, которая принимает итерируемый объект и возвращает количество объектов, которые в этом итерируемом объекте встречаются больше одного раза:
def elements_count(iterable_object):
summ = 0
for i in iterable_object:
if iterable_object.count(i)>1:
summ += 1
return (summ)
sequence = input().split(',')
print(elements_count(sequence))
Вот код функции, но она выводит не количество повторяющихся элементов, а количество повторов элементов. Например, если мы вводим [1,1,1,2,3,4,4,4,5], то код выводит 6, а нужно 2. В чем ошибка?
Ответы (2 шт):
Автор решения: whizz169
→ Ссылка
def elements_count(iterable_object):
x = {i for i in iterable_object if iterable_object.count(i) > 1}
return len(x)
sequence = input('Input: ').split(',')
print(elements_count(sequence))
Можно использовать множество для элементов, удовлетворяющих условию и просто выводить его длину
Автор решения: krumlyakov
→ Ссылка
Решил проблему таким образом:
def elements_count(iterable_object):
summ = 0
for i in set(iterable_object):
if iterable_object.count(i)>1:
summ += 1
return (summ)
sequence = input().split()
print(elements_count(sequence))