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

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

04.03.2021, 19:59. Показов 4923. Ответов 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru