С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
8 / 5 / 1
Регистрация: 15.12.2020
Сообщений: 349

Выведите числа, которые встречаются в списке несколько раз

04.03.2021, 19:59. Показов 4851. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Плз. нужна срочно помощь! Дан список чисел. Выведите числа, которые встречаются в списке по несколько раз.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2021, 19:59
Ответы с готовыми решениями:

Выведите те элементы списка, которые встречаются в списке только один раз
Дан список. Выведите те его элементы, которые встречаются в списке только один раз. Элементы нужно выводить в том порядке, в котором они...

Выведите элементы, которые встречаются в первом списке и не встречаются во втором
Поочередно вводится две последовательности целых чисел, разделенных пробелом. Выведите через пробел элементы, которые встречаются в первом...

Выведите все числа, которые встречаются в этом массиве несколько раз
Дан массив, состоящий из 100 целых чисел. Выведите все числа, которые встречаются в этом массиве: а) несколько раз; б) только по...

18
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
04.03.2021, 22:59
VictorVAlduin,
Python
1
2
3
a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
seen = set(x for x in a)
print(*seen)
0
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
04.03.2021, 23:11
gray621, это тоже самое, что написать set(a)...
правильней будет
Python
1
2
3
a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
result = set(filter(lambda x: a.count(x) > 1,a))
print(*result)
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
04.03.2021, 23:41
TAVulator, а чем отличается?
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
04.03.2021, 23:43
gray621, Тем, что нет лишних действий
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
04.03.2021, 23:47
TAVulator, аа все, понял
Python
1
2
3
import collections
a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
print([item for item, count in collections.Counter(a).items() if count > 1])
Добавлено через 2 минуты
Matrix3007, TAVulator,
Python
1
2
3
4
5
6
7
for x in a:
    if x not in seen:
        seen[x] = 1
    else:
        if seen[x] == 1:
            dupes.append(x)
        seen[x] += 1
Добавлено через 29 секунд
Matrix3007, нет, у меня просто множество всех чисел было, это неправильно
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
04.03.2021, 23:48
Matrix3007, неужели
Цитата Сообщение от Matrix3007 Посмотреть сообщение
нет лишних действий
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
05.03.2021, 00:03
Miryz, Проблемы?)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
05.03.2021, 06:52
Цитата Сообщение от TAVulator Посмотреть сообщение
правильней будет
мне кажется правильнее будет сет использовать пораньше, по вашему способу мы 5 считаем 4 раза, так как их 4 в списке
вот так побыстрее
Python
1
2
a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
result = [e for e in set(a) if a.count(e)==1]
gray621, вариант с Каунтером хороший, хоть и помедленнее моего, а вот второй вариант я не понял - что за коллекции seen и dupes

Matrix3007, проблема в том что в варианте Тавулятора мы повторяющиеся числа считаем снова и снова, когда уже и так знаем что их больше 1.
1
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
05.03.2021, 08:24
Welemir1, ваш код считает числа, которые не повторяются? В моем коде seen - словарь, а dupes - список
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
05.03.2021, 08:30
Цитата Сообщение от gray621 Посмотреть сообщение
ваш код считает числа, которые не повторяются?
а не видно? или например запустить можно)

Цитата Сообщение от gray621 Посмотреть сообщение
В моем коде seen - словарь, а dupes - список
как то сложновато
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
05.03.2021, 08:36
Welemir1, в вашем коде: if a.count == 1, значит это числа, которые встречаются только один раз, но опять же count готовая функция, как-то не очень. В моем коде создаётся словарь чисел и если число встречается второй раз, то оно дубликат.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.03.2021, 08:51
Python
1
2
3
a = [1, 2, 3, 2, 1, 5, 6, 5, 5, 5]
result = set(e for i, e in enumerate(a) if e in a[i + 1:])
print(result)
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
05.03.2021, 11:02
Цитата Сообщение от TAVulator Посмотреть сообщение
result = set(filter(lambda x: a.count(x) > 1,a))
Цитата Сообщение от Matrix3007 Посмотреть сообщение
Тем, что нет лишних действий
Цитата Сообщение от Welemir1 Посмотреть сообщение
хоть и помедленнее моего
O(N ^ 2), действительно (нет).
Вариант gray621 с collection.Counter работает куда быстрее: O(N).

Показываю:
Python
1
2
3
4
5
6
7
8
9
In [1]: a = list(range(1_000))
 
In [2]: %timeit [e for e in set(a) if a.count(e)==1]
21.3 ms ± 422 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
 
In [3]: from collections import Counter
 
In [4]: %timeit [key for key, count in Counter(a).items() if count > 1]
220 µs ± 34.9 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
/upd

Не по теме:

iSmokeJC, ваш вариант тоже за O(N ^ 2).



/upd2
Цитата Сообщение от Welemir1 Посмотреть сообщение
что за коллекции seen и dupes
Если seen - dict, то вариант тоже линейный.
/upd3
Вариант на "голых" set'ах без collections.Counter:
Python
1
2
3
4
5
6
7
8
9
a = map(int, input().split())
used = set()
result = set()
for x in a:
    if x in used and x not in result:
        result.add(x)
    used.add(x)
    
print(*result)
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
05.03.2021, 11:41
Arsegg, Под лишним действием я подразумевал set(x for x in a), про вариант с collections.Counter я вообще ничего не говорил.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
05.03.2021, 12:18
Цитата Сообщение от Arsegg Посмотреть сообщение
Вариант gray621 с collection.Counter работает куда быстрее: O(N).
ничего не знаю, мой таймит показывал другие числа

Добавлено через 37 секунд
а ну так 1000 чисел то не надо совать))
0
05.03.2021, 12:36

Не по теме:

Цитата Сообщение от Welemir1 Посмотреть сообщение
а ну так 1000 чисел то не надо совать))
А там приколюха есть: до ~64 элементов квадратичный вариант может быть быстрее. Почему? Это куда более серьезный вопрос))

0
05.03.2021, 13:00

Не по теме:

ничо не знаю, но на всякий случай обиделся)))

0
05.03.2021, 13:13

Не по теме:

Цитата Сообщение от Welemir1 Посмотреть сообщение
ничо не знаю, но на всякий случай обиделся)))
На кэш-линию процессора?)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.03.2021, 13:13
Помогаю со студенческими работами здесь

Вывести числа, которые встречаются в массиве несколько раз / один раз
дан массив состоящий из 100 целых чисел. а)Вывести все числа,которие встречаются в етом массиве несколько раз б)Вывести все...

Оставить в списке числа, которые встречаются только один раз
необходимо:сформировать из последовательности целых чисел линейный список и преобразовать его, оставив только те числа, которые встречают в...

Вывести те числа, которые встречаются в списке только один раз
Помогите написать.В текстовом файле хранится последовательность целых чисел. Вывести те числа, которые встречаются в последовательности...

Вывести все числа, которые встречаются в этом массиве несколько раз
Дан массив, состоящий из 100 целых чисел. а) Вывести все числа, которые встречаются в этом массиве несколько раз. б) Вывести все...

Выведите элементы списка, которые встречаются в нем один раз
Дан список. Выведите те его элементы, которые встречаются в списке только один раз. Элементы нужно выводить в том порядке, в котором они...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru