Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.99/75: Рейтинг темы: голосов - 75, средняя оценка - 4.99
0 / 0 / 0
Регистрация: 25.04.2020
Сообщений: 14

Удаление одинаковых элементов списка

13.07.2020, 11:59. Показов 14868. Ответов 14

Студворк — интернет-сервис помощи студентам
например есть список:

Python
1
q=[1,1, 2, 3, 2]
а мне нужно удалить повторяющиеся элементы списка и получить на выводе:

Python
1
q=[1, 2, 3]
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.07.2020, 11:59
Ответы с готовыми решениями:

Удаление одинаковых элементов из строки
Программа заменяет ВСЕ найденные похожие элементы.(Прим. "чёлка у мамы ёлка красивая." - ёлка >> "ч у мамы красивая")....

Поиск одинаковых элементов списка
Как вытащит несколько одинаковых элементов lis=('123 w 145 s 123 l 432 y 76 i 123 ll') lis=lis.split(' ') p=lis #вытащить точно такие...

Удаление соседних одинаковых элементов в списке
Ребят помогите или подскажите где можно поглядеть. Задача: Дан список чисел.Нужно вернуть список, где все соседние элементы были бы...

14
 Аватар для Valikusik228322
2 / 1 / 1
Регистрация: 29.03.2018
Сообщений: 6
13.07.2020, 12:02
Просто преобразуй в множество, в нём не может быть повторений
Python
1
print list(set(q))
0
3 / 2 / 1
Регистрация: 07.06.2019
Сообщений: 24
13.07.2020, 12:06
s= set(q)
q = list(s)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
13.07.2020, 13:12
Цитата Сообщение от Valikusik228322 Посмотреть сообщение
Просто преобразуй в множество, в нём не может быть повторений
- читерство... Я бы не зачел такое решение. Хотя бы так:


Python
1
2
3
4
5
def set_of(arr):
    if len(arr)<=1:
        return arr
    else:
        return [arr[0]]+set_of([x for x in arr[1:] if x != arr[0]])
0
 Аватар для Semen-Semenich
5230 / 3476 / 1174
Регистрация: 21.03.2016
Сообщений: 8,304
13.07.2020, 19:24
Цитата Сообщение от Valikusik228322 Посмотреть сообщение
Просто преобразуй в множество, в нём не может быть повторений
а если нужно сохранить порядок элементов?
не создавая новый список

Python
1
2
3
4
5
q = [1,1, 2, 3, 2, 5]
for i in reversed(range(len(q))):
    if q[i] in q[:i]:
        del q[i]
print(q)
Python
1
2
3
4
5
6
7
8
9
def removing(q):
    new_ = []
    for el in q:
        if el not in new_:
            new_.append(el)
    return new_
 
q = [1,1, 2, 3, 2, 5]
print(removing(q))
0
3 / 2 / 1
Регистрация: 07.06.2019
Сообщений: 24
15.07.2020, 11:28
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
а если нужно сохранить порядок элементов?
не создавая новый список
То это была бы уже другая задача

Добавлено через 3 минуты
Цитата Сообщение от Catstail Посмотреть сообщение
- читерство... Я бы не зачел такое решение. Хотя бы так:
А почему, это же Python :-)
"Простое лучше, чем сложное"
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
15.07.2020, 11:35
Цитата Сообщение от ch_pp Посмотреть сообщение
То это была бы уже другая задача
задача "удалить повторяющиеся элементы", а не переносить неповторяющиеся в новый список в произвольном порядке.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
15.07.2020, 12:29
Цитата Сообщение от ch_pp Посмотреть сообщение
А почему, это же Python :-) "Простое лучше, чем сложное"
- смотря что проверяется... Если знание библиотек - то да. Если знание алгоритмов, то нет. Знание алгоритма важнее, поскольку универсальнее (знающий алгоритм, реализует его в любом языке. Знающий, что в Python - это вызов set, в другой обстановке будет бессилен). Кем быть: действительно знающим специалистом, или попкой, знающим только библиотечные вызовы - каждый решает для себя сам. Без обид.
0
3 / 2 / 1
Регистрация: 07.06.2019
Сообщений: 24
15.07.2020, 15:28
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
задача "удалить повторяющиеся элементы", а не переносить неповторяющиеся в новый список в произвольном порядке.
удалить справа налево, или слева направо?
Это я к тому, что если нет ограничительных условий, то можно придумывать их как кому захочется.

Добавлено через 7 минут
Цитата Сообщение от Catstail Посмотреть сообщение
- смотря что проверяется... Если знание библиотек - то да. Если знание алгоритмов, то нет. Знание алгоритма важнее, поскольку универсальнее (знающий алгоритм, реализует его в любом языке. Знающий, что в Python - это вызов set, в другой обстановке будет бессилен). Кем быть: действительно знающим специалистом, или попкой, знающим только библиотечные вызовы - каждый решает для себя сам. Без обид.
как бы да, и как бы ... нет
Тренировать мышление конечно важнее. Все зависит от цели.
Мне, например, сложнее запомнить большое количество новых вызовов, чем понятные еще в институте простейшие логические цепочки.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
15.07.2020, 15:57
Цитата Сообщение от ch_pp Посмотреть сообщение
как бы да, и как бы ... нет
Тренировать мышление конечно важнее. Все зависит от цели.
Мне, например, сложнее запомнить большое количество новых вызовов, чем понятные еще в институте простейшие логические цепочки.
- "как бы" - паразитическое словосочетание. Тут ответ однозначен - да. А тренировать память можно (и нужно!) по-другому. Например, учить наизусть стихи хороших поэтом.
0
3 / 2 / 1
Регистрация: 07.06.2019
Сообщений: 24
15.07.2020, 17:13
Цитата Сообщение от Catstail Посмотреть сообщение
- "как бы" - паразитическое словосочетание.
Не согласен, это неоднозначно. Тем более, что я не отношусь к языку, как к памятнику, который руками трогать нельзя. И уж тем более, что фраза эта цельнозначимая.
Память да, надо тренировать всячески. :-)
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
15.07.2020, 17:51

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
"как бы" - паразитическое словосочетание
Ну, как бы и да, и как бы и нет. Да нет, в общем. Ну да, а частности.

Да, как бы не так - скажет иной. Ни то, ни другое - ответит второй.
А третий подумает: что ж тут сказать, ведь можно ж и эдак и так толковать...


:-)
0
15.07.2020, 18:10

Не по теме:

Цитата Сообщение от ch_pp Посмотреть сообщение
Не согласен, это неоднозначно.
- да, бывают случаи, когда употребление этого сочетания нормально: "Есть в осени первоначальной короткая, но дивная пора. Весь день стоит, как бы хрустальный, и лучезарны вечера" (Ф.Тютчев)

Но в современной речи употребление этого сочетания чаще всего выражает когнитивную слабость. "мой как бы друг..." так друг или не друг? и т.п.

0
 Аватар для Semen-Semenich
5230 / 3476 / 1174
Регистрация: 21.03.2016
Сообщений: 8,304
15.07.2020, 18:26

Не по теме:

Garry Galler, Catstail, вам нужно раздел русской речи создать. ваш спор очень интересен.

1
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
16.07.2020, 08:35
Python
1
2
3
4
5
6
7
8
9
10
elements, cursor = [1, 1, 2, 3, 2], 0
 
while cursor < len(elements):
    element = elements[cursor]
    if elements.count(element) > 1:
        elements.pop(elements.index(element, cursor + 1))
    else:
        cursor += 1
 
print(elements)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.07.2020, 08:35
Помогаю со студенческими работами здесь

Нахождение одинаковых элементов и их кол-ва между строками списка
Не могу найти общие элементы между строками(паролями), являющимися элементами списка. Остальная часть программы готова. Пример списка: a...

Удаление элементов списка
6. В списке A=(a1, а2, ..., аn) удалить все положительные элементы, имеющие четный порядковый номер, идущие после минимального элемента...

Удаление элементов из списка
Помогите, пожалуйста, исправить программу: Предложение, которое вводит пользователь, будет строкой. Сначала нужно преобразовать в список...

Удаление элементов из списка
Всем привет! У меня проблема с удалением элементов из списка: не получается удалить элементы ' '. Кто-нибудь может подсказать, в чем...

Удаление элементов списка
def var22 (text): words = text.split() last_word = words words = words for word in words: if word ==...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru