Рубрики
Без рубрики

Как удалить дубликаты из списка Python при сохранении заказа?

Чтобы удалить дубликаты из списка Python при сохранении порядка элементов, используйте список кода (Dict.Fromkeys (список)), который проходит два этапа: (1) Преобразовать список в Dict, используя функцию DiCT.Fromkeys (). С элементами списка в качестве клавиш и нет в качестве ценностей диктовых. (2) Преобразуйте словарь Вернуться в список, используя … Как удалить дубликаты из списка Python при сохранении заказа? Читать далее “

Автор оригинала: Chris.

Чтобы удалить дубликаты из списка Python при сохранении порядка элементов, используйте код Список (Dict.Fromkeys (список)) который проходит через две фазы: (1) Преобразуйте список в Dict, используя Dict.Fromkeys () Функция со списком элементов как клавиши и Нет как ценности диктов. (2) Преобразуйте словарь обратно в список, используя Список () конструктор. Поскольку словари сохраняют порядок ключей, заказание списка сохраняется.

Проблема : Как удалить дубликаты из Список Python Удерживая порядок консервированных элементов списка?

Вы можете найти этот вопрос немного неловко. Что удаляло дубликаты с сохранением порядка элементов? Причина проста: хорошо известный и эффективный способ удаления дубликатов из списка – это преобразование списка на множество – что-то дублирован – бесплатный – и преобразование его обратно в список. Вот что вы можете найти повсюду:

lst = [42, 42, 'Alice', 'Alice', 1]
dup_free = list(set(lst))
print(dup_free)
# ['Alice', 42, 1]

Вернувшаяся преобразование Список (набор (LST)) Удаляет все дубликаты из списка. Однако он не сохраняет порядок элементов. В примере строка «Алиса» Теперь появляется до целого числа 42 Отказ

Итак, как удалить дубликаты при сохранении порядка элементов?

Самый питон и восстанно быстрый подход – использовать словарь:

lst = [3, 3, 22, 22, 1]
result = list(dict.fromkeys(lst))
print(result)
# [3, 22, 1]

Dict.Fromkeys () Способ создает новый словарь, используя элементы из итерапы, как клавиши. Словарь Python ключей уникальна по умолчанию, поэтому Преобразование нашего списка в словарь удалит дубликаты автоматически. Как только это было сделано с нашим первоначальным списком, преобразование результатов обратной стороны словаря в списке дубликатов.

Это самый питонический способ удалить дубликаты из списка Python при сохранении заказа.

Это метод быстро? Как наборы, словари используют Хэш таблицы , что означает, что они чрезвычайно быстры.

Вы хотите развивать навыки Хорошо округлый Python Professional То же оплачивается в процессе? Станьте питоном фрилансером и закажите свою книгу Оставляя крысиную гонку с Python На Amazon ( Kindle/Print )!

Словари Python сохраняют упорядочение ключа?

Удивительно, Словары ключей в Python сохраняют порядок элементов Отказ Итак, да, порядок элементов сохраняется. (источник)

Бесчисленные онлайн-ресурсы, такие как это утверждают, что порядок ключей словаря не сохранился. Они предполагают, что базовая реализация ключевых словарных ключей использует наборы -И наборы хорошо известны, что агностики к упорядочению элементов. Но это предположение не так. Встроенная реализация словаря Python в Cpefhon сохраняет заказ.

Вот еще один пример:

lst = ['Alice', 'Bob', 'Bob', 1, 1, 1, 2, 3, 3]
dic = dict.fromkeys(lst)
print(dic)
# {'Alice': None, 'Bob': None, 1: None, 2: None, 3: None}

Вы видите, что порядок элементов сохраняется так при преобразовании его обратно, исходное упорядочение элементов списка все еще сохраняется:

print(list(dic))
# ['Alice', 'Bob', 1, 2, 3]

Однако вы не можете полагаться на него, потому что любая реализация Python может, теоретически решать не сохранять порядок (обратите внимание, что «может» вот 100% теоретический и не распространяется на реализацию CPYPHON.

Если вам нужно уверены, что заказ сохраняется, вы можете использовать Заказанная библиотека словаря Отказ В CPYthon это просто обертка для реализации Dict Dict.

Источник статьи: Как удалить дубликаты из списка Python?

Удаление дубликатов из упорядоченных списков для более старых версий

Словари стало только приказано только во всех реализациях Python, когда был выпущен Python 3.7 (это также была деталь реализации CPYPHON 3.6).

Итак, если вы используете старую версию Python, вам нужно будет импортировать ЗаказДикт Класс из пакета коллекций в стандартной библиотеке вместо этого:

 from collections import OrderedDict
 lst = [1, 1, 9, 1, 9, 6, 9, 7]
 result = list(OrderedDict.fromkeys(lst))

Выходной вывод является следующим дублированным свободным списком с заказом сохраненных элементов:

 print(result)
 # [1, 9, 6, 7]

Interactive Code Shell.

Давайте попробуем этот метод в нашей интерактивной Python Shell:

Упражнение: Запустите код. Это работает?

Вы можете найти больше способов удаления дубликатов при сохранении заказа в этом подробном статье блога:

Похожие учебники: Список Python: удалите дубликаты и сохраняйте заказ

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

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

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.