Как решить эту задачу? Помогите пожалуйста ,ничего не лезет в голову
Напишите программу, которая принимает на вход список чисел в одной строке и выводит на экран в одну строку значения, которые встречаются в нём более одного раза.
Для решения задачи может пригодиться метод sort списка.
Выводимые числа не должны повторяться, порядок их вывода может быть произвольным.
Sample Input 1:
4 8 0 3 4 2 0 3
Sample Output 1:
0 3 4
Sample Input 2:
10
Sample Output 2:
Sample Input 3:
1 1 2 2 3 3
Sample Output 3:
1 2 3
Sample Input 4:
1 1 1 1 1 2 2 2
Sample Output 4:
1 2
Ответы (3 шт):
Автор решения: n1tr0xs
→ Ссылка
- Просим пользователя ввести данные.
- Используем словарь для подсчета кол-ва повторов.
- Выводим числа с повтором
>1.
Автор решения: CrazyElf
→ Ссылка
Ещё как вариант можно использовать два множества:
- в первое множество собирать числа, которые встречаются в первый раз
- во второе множество собирать те числа, которые ранее попали в первое множество и после этого встретились ещё раз
- вывести в конце второе множество
Вариантов полно как эту задачу можно решить.
Автор решения: spectrum
→ Ссылка
Думаю наилучший вариант такой:
def find_more_than_once(li):
return [item for item in set(li) if li.count(item) > 1]
li = [4,8,0,3,4,2,0,3]
print(find_more_than_once(li))
P.S научитесь гуглить..
UPD
Ну и если на вход подается не список, а строка формата "0 1 2 3" то просто сплитим по пробелу:
def str_to_li(s):
return s.split(' ')