Нужно вернуть массив, состоящий только из неуникальных элементов данного массива

Функция должна возвращать такие значения

checkio([1, 2, 3, 1, 3]) == [1, 3, 1, 3]
checkio([1, 2, 3, 4, 5]) == []
checkio([5, 5, 5, 5, 5]) == [5, 5, 5, 5, 5]
checkio([10, 9, 10, 10, 9, 8]) == [10, 9, 10, 10, 9]

Хочу решить эту задачу не используя одни только циклы for вложенные друг в друга. Попытался решить задачу с помощью filter, но столкнулся с ошибкой ('int' object has no attribute 'count'), а так же понимаем частичного непонимания работы lambda функции:

def checkio(data: list) -> list:
    data = filter(lambda x: x.count(x)>1, data)
    return data

Ответы (1 шт):

Автор решения: Zhihar

ну почти сделали

ошиблись только в 1 месте - вместо x.count(x) надо было указать data.count(x)

ну и хорошо бы после filter результат перевести в список, поскольку изначально это просто итерируемый объект

def checkio(data: list) -> list:
    return list(filter(lambda x: data.count(x)>1, data))

print(checkio([1, 2, 3, 1, 3]))
print(checkio([1, 2, 3, 4, 5]))
print(checkio([5, 5, 5, 5, 5]))
print(checkio([10, 9, 10, 10, 9, 8]))
→ Ссылка