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

Как объединить два списка Python и удалить дубликаты во втором списке?

Проблема: Учитывая два списка [1, 2, 2, 4] и [2, 5, 5, 5, 6]. Как вы объединяете эти списки в новый список [1, 2, 2, 4, 5, 6], удалив дубликаты во втором списке? Примечание. Вы хотите удалить все дубликаты во втором списке и элементах во втором … Как объединить два списка Python и удалить дубликаты во втором списке? Подробнее “

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

Проблема : Дано два Списки [1, 2, 2, 4] и [2, 5, 5, 5, 6] Отказ Как ты комбинировать Эти списки в новый список [1, 2, 2, 4, 5, 6] по Удаление дубликатов во втором списке?

Примечание : Вы хотите удалить все дубликаты во втором списке и элементы во втором списке, которые уже в первом списке.

Решение : Используйте следующие три шага, чтобы объединить два списка и удалить дубликаты во втором списке:

  • Преобразуйте первый и второй списки на набор, используя Установить (...) конструктор.
  • Используйте Установить минус Операция, чтобы получить все элементы, которые находятся во втором списке, но не в первом списке.
  • Создать новый список по объединение те элементы в первый список.

Вот код:

# Create the two lists
l1 = [1, 2, 2, 4]
l2 = [2, 5, 5, 5, 6]

# Find elements that are in second but not in first
new = set(l2) - set(l1)

# Create the new list using list concatenation
l = l1 + list(new)
print(l)
# [1, 2, 2, 4, 5, 6]

Попробуйте сами в нашей интерактивной Python Shell:

Упражнение : Можете ли вы переписать это в одной строке кода Python ( Python One-lister )?

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

l = l1 + list(set(l2) - set(l1))

Если вы хотите узнать о самом питоновом способе удаления всех дубликатов из списка Python, читайте на:

Как удалить дубликаты из списка Python?

Наивный метод : Перейдите на каждый элемент и проверьте, существует ли этот элемент в списке. Если это так, удалите его. Однако это требует нескольких строк кода.

Эффективный метод: Короче и более краткий способ состоит в том, чтобы создать словарь из элементов в списке, чтобы удалить все дубликаты и преобразовывать словарь обратно в список. Это сохраняет порядок исходных элементов списка.

lst = ['Alice', 'Bob', 'Bob', 1, 1, 1, 2, 3, 3]
print(list(dict.fromkeys(lst)))
# ['Alice', 'Bob', 1, 2, 3]
  1. Преобразуйте список в словарь с Dict.Fromkeys (LST) Отказ
  2. Преобразуйте словарь в список Список (Dict) Отказ

Каждый элемент списка становится новым ключом к словарю. Например, список [1, 2, 3] становится словарь {1: нет, 2: нет, 3: нет} Отказ Все элементы, которые происходят несколько раз, будут присвоены к тому же ключу. Таким образом, словарь содержит только уникальные ключевые ключи – не могут быть несколько равных клавиш.

В качестве значений словаря вы принимаете фиктивные значения (по умолчанию).

Затем вы преобразуете словарь обратно в список, выбрасывающие фиктивные значения.

Вот код:

>>> lst = [1, 1, 1, 3, 2, 5, 5, 2]
>>> dic = dict.fromkeys(lst)
>>> dic
{1: None, 3: None, 2: None, 5: None}
>>> duplicate_free = list(dic)
>>> duplicate_free
[1, 3, 2, 5]

Связанные статьи в блоге:

  • Python Удалить дубликаты из списка списков
  • Список Python Удалить
  • Окончательный гид по словари Python!

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

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

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

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

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

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

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

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

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

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

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

Оригинал: “https://blog.finxter.com/python-how-to-combine-two-lists-removing-duplicates-in-second-list/”