Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1199 / 768 / 128
Регистрация: 10.03.2012
Сообщений: 4,965

Найти неповторяющиеся и элементы, которые не имеют повторений в исходном списке

23.02.2023, 16:37. Показов 2415. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан список, заполненный произвольными целыми числами. Получить новый список, элементами которого будут:
1) неповторяющиеся(уникальные) элементы исходного списка:
например,
Python
1
lst = [1, 2, 4, 5, 6, 2, 5, 2]
нужно получить
Python
1
lst2 = [1, 2, 4, 5, 6]
2) элементы исходного списка, которые не имеют повторений (встречаются только один раз):
например,
Python
1
lst = [1, 2, 4, 5, 6, 2, 5, 2]
нужно получить
Python
1
lst2 = [1, 4, 6]
Python
1
2
3
4
5
6
import random
def gen_list(size, of, to):
    result = []
    for _ in range(size):
        result.append(random.randint(of, to))
    return result
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.02.2023, 16:37
Ответы с готовыми решениями:

Как сделать permutations из модуля itertools без повторений, если элементы в исходном списке повторяются?
Как сделать permutations из модуля itertools без повторений, если элементы в исходном списке повторяются? Допустим есть список x = ...

Оставить в списке элементы, которые имеют парное количество вхождений в список
Например есть список . Результат:

Оставить в списке элементы, которые имеют парное количество вхождений в список
Например есть список . Результат:

6
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
23.02.2023, 16:48
Python
1
2
3
4
5
6
7
from random import randint
lst = [randint(1, 10) for _ in range(10)]
lst2 = list(set(lst))
lst3 = [x for x in lst2 if lst.count(x) == 1]
print(*lst)
print(*lst2)
print(*lst3)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.02.2023, 19:00
1) порядок чисел можно не сохранять?
0
1199 / 768 / 128
Регистрация: 10.03.2012
Сообщений: 4,965
23.02.2023, 19:08  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
1) порядок чисел можно не сохранять?
Если можете покажите оба варианта
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.02.2023, 19:29
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Первый способ не гарантирует порядок, второй гарантирует. вроде:
Python
1
2
3
>>> lst = [1, 2, 4, 5, 6, 2, 5, 2]
>>> list(set(lst))
[1, 2, 4, 5, 6]
Python
1
2
3
4
5
6
7
>>> import collections
>>> d = collections.OrderedDict()
>>> for i in lst:
...     d[i] = True
... 
>>> list(d.keys())
[1, 2, 4, 5, 6]
Добавлено через 1 минуту
Более удачный пример:
Python
1
2
3
4
5
6
7
8
9
>>> lst = [4, 1, 2, 4, 5, 6, 2, 5, 2]
>>> list(set(lst))
[1, 2, 4, 5, 6]
>>> import collections
>>> d = collections.OrderedDict()
>>> for i in lst:  d[i] = True
... 
>>> list(d.keys())
[4, 1, 2, 5, 6]
Добавлено через 5 минут
2)
Python
1
2
3
4
5
>>> c = collections.Counter(lst)
>>> c
Counter({2: 3, 5: 2, 1: 1, 4: 1, 6: 1})
>>> [k for k, v in c.items() if v == 1]
[1, 4, 6]
Добавлено через 42 секунды
Цитата Сообщение от Parramon Посмотреть сообщение
lst.count(x)
У вас получилось O(N^2)

Добавлено через 2 минуты
3)
Python
1
2
>>> numpy.random.randint(0, 10, size=5)
array([7, 0, 4, 5, 0])
2
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
23.02.2023, 19:50
Whitecolor, Рыжий Лис, с версии 3.6 обычный словарь гарантирует порядок в котором вставляли и он, вроде быстрее OrderedDict'а
Python
1
2
3
4
5
6
7
8
9
lst = [7, 4, 1, 2, 4, 5, 6, 2, 5, 2]
 
ret = list(dict.fromkeys(lst))
print('уникальные, присутствуют 1 и более раз', ret, sep='\n')
 
dct = {}
for x in lst: dct[x] = dct.get(x, 0) + 1
ret = [k for k, v in dct.items() if v == 1]
print('уникальные, присутствуют ровно 1 раз', ret, sep='\n')
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.02.2023, 19:53
Python
1
2
3
>>> lst = [7, 4, 1, 2, 4, 5, 6, 2, 5, 2]
>>> list(dict.fromkeys(lst))
[1, 2, 4, 5, 6, 7]
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.02.2023, 19:53
Помогаю со студенческими работами здесь

Напечатать слова текста, которые не имеют повторений
Множества. Напечатать слова текста, которые не повторяются.

Элементы которые имеют четный индексы упорядочить по возростанию а элементы которые не четные по убыванию
3)Элементы которые имеют четный индексы упорядочить по возростанию а элементы которые не четные по убыванию 4)Вывести в порядке убывания...

Заменить в исходном списке отрицательные элементы на ноль
Есть программа, сказали изменить ее, чтобы отрицательные элементы менялись на ноль. Помогите пожалуйста исправить программу... :( ...

Получить список элементов, которые встречаются в исходном списке более одного раза
Пролог версии 5.2, помогите пожалуйста, со списками разобраться совсем не могу.

Найти все элементы, которые имеют наибольшее число вхождений в список
Если таких элементов несколько, то вывести их все.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru