Здесь мы обсудим все 6 методов объединения двух списков без дубликатов в Python. Начнем с первого метода использования функции set().
- Метод 1: с помощью set()
- Метод 2: с помощью extensions()
- Метод 3: с помощью оператора or
- Метод 4: используя np.unique()
- Метод 5: используя коллекции
- Метод 6: с помощью цикла и add()
Метод 1: с помощью set()
Один из распространенных способов объединить два списка с дубликатами в Python — выполнить следующие шаги:
- Сначала объединим все элементы списка в один список
- Затем преобразуйте список со всеми элементами в набор с помощью функции set().
- Набор будет содержать только уникальные значения и удалит из него все дубликаты.
- В последнем случае преобразуйте набор обратно в список с помощью функции list().
Вот пример такого подхода в Python.
# Defining two lists with dupliactes day1_attendees = ["Alice", "Bob", "Charlie", "David"] day2_attendees = ["Charlie", "David", "Emily", "Frank"] # Merging lists together all_attendees = day1_attendees + day2_attendees # Printing merged list print("Complete list:", all_attendees) # Removing duplicates unique_attendees = list(set(all_attendees)) # Printing merged list without duplicates print("List without duplicates:", unique_attendees)
Выполнив вышеуказанную программу Python, мы получим следующий результат.
Complete list: ['Alice', 'Bob', 'Charlie', 'David', 'Charlie', 'David', 'Emily', 'Frank'] List without duplicates: ['Alice', 'Charlie', 'Emily', 'David', 'Frank', 'Bob']
Метод 2: с помощью extensions()
Другой способ объединить два списка без дубликатов в Python — использовать метод extensions().
Как и в методе add(), мы передаем только одно значение, которое нужно добавить к последнему из списка. Точно так же метод extensions() позволяет вставлять элементы в последний элемент списка. Однако метод extensions() принимает итерацию вместо одного значения.
Итак, в методе extensions() мы будем использовать цикл for и оператор if, чтобы вставлять в список только уникальные значения без каких-либо дубликатов.
Пример:
# Defining two lists with dupliactes emp_1 = ["Alice", "Bob", "Charlie", "David"] emp_2 = ["Charlie", "David", "Alice", "Frank"] # Creating a copy merged_list = list(emp_1) # Using extend() method merged_list.extend(y for y in emp_2 if y not in merged_list) # Printing merged list without duplicates print("List without duplicates:", merged_list)
В приведенном выше примере мы определили 2 списка — emp_1 и emp_2. После этого мы создали копию первого списка с именем merged_list. Затем использовал метод расширения() с циклом и оператором if в merged_list.
Таким образом, мы получим объединенный список без дубликатов в Python.
List without duplicates: ['Alice', 'Bob', 'Charlie', 'David', 'Frank']
Метод 3: с помощью оператора or
Еще один быстрый способ объединить два списка без дубликатов — использовать оператор or с функцией set() в Python.
В этом методе мы снова будем использовать функцию set() для преобразования списка в набор и объединения обоих наборов с помощью оператора or. В последнем случае мы преобразуем результат оператора или обратно в список.
# Defining two lists with dupliactes states_1 = ["California", "Texas", "Florida"] states_2 = ["Florida", "California", "Georgia", "Washington"] # Using set() and or operator unique_states = list(set(states_1) | set(states_2)) # Printing merged list without duplicates print("List without duplicates:", unique_states)
В приведенном выше примере мы взяли в Python два разных списка, состоящих из повторяющихся значений. После этого мы использовали функцию set() для преобразования этих списков в наборы и использовали оператор или между ними для получения только уникальных значений.
Как только мы выполним вышеуказанную программу, мы получим следующий список без дубликатов.
List without duplicates: ['Texas', 'Washington', 'California', 'Florida', 'Georgia']
Метод 4: используя np.unique()
np.unique() — это функция NumPy в Python, которая возвращает отсортированные уникальные элементы массива.
Итак, в этом методе мы объединим оба списка Python с помощью оператора +. А затем используйте метод np.unique(), чтобы создать массив только из уникальных значений. В последнем случае мы преобразуем этот массив обратно в список, используя функцию list() в Python.
# Importing numpy import numpy as np # Defining two lists with dupliactes num_1 = [21, 31, 41, 51, 61] num_2 = [32, 21, 42, 61, 51] # Using np.unique() unique_nums = list(np.unique(num_1 + num_2)) # Printing merged list without duplicates print("List without duplicates:", unique_nums)
В приведенном выше примере мы объединили списки num_1 и num_2 с помощью функций np.unique() и list() в Python.
Результат работы вышеуказанной программы Python показан ниже.
List without duplicates: [21, 31, 32, 41, 42, 51, 61]
Метод 5: используя коллекции
В модуле коллекций у нас есть встроенный класс Counter, который принимает итерацию в качестве входных данных и возвращает словарь, содержащий количество каждого значения. В этом словаре ключ — это уникальное значение, а значение — это количество каждого значения.
Итак, используя его ключи из класса Counter, мы можем объединить два списка без дубликатов. Пример такого подхода приведен ниже.
# Importing Counter from collections import Counter # Defining two lists with dupliactes num_1 = [21, 31, 41, 51, 61] num_2 = [32, 21, 42, 61, 51] # Creating a Counter object for each list counter_num_1 = Counter(num_1) counter_num_2 = Counter(num_2) # Add the Counter objects, but only unique records from num_2 combined_counter = counter_num_1 + Counter(ele for ele in counter_num_2 if ele not in counter_num_1) # Convert the Counter object to list final_list = list(combined_counter.elements()) # Printing merged list without duplicates print("List without duplicates:", final_list)
В приведенном выше примере мы использовали класс Counter из модуля коллекций и создали объект Counter, используя каждый список. После этого мы объединили оба объекта Counter, используя цикл for и оператор if.
В конце концов, как только мы получим объект Counter со всеми уникальными значениями, мы преобразуем объект Counter обратно в список.
Результат приведенного выше примера показан ниже.
List without duplicates: [21, 31, 41, 51, 61, 32, 42]
Метод 6: с помощью цикла и add()
- В этом методе мы просто будем использовать цикл for для перебора каждого элемента в одном списке.
- После этого мы будем использовать оператор if, чтобы проверить, существует ли элемент, указанный в одном списке, в другом или нет.
- В последнем случае мы будем использовать метод add() для добавления уникального элемента списка из одного списка в другой. В результате будет сформирован единый список со всеми уникальными значениями.
Пример такого подхода приведен ниже.
# Defining two lists with dupliactes num_1 = [21, 31, 41, 51, 61] num_2 = [32, 21, 42, 61, 51] # Creating a copy merged_list = list(num_1) # Uisng for loop and append() for element in num_2: if element not in merged_list: merged_list.append(element) # Printing merged list without duplicates print("List without duplicates:", merged_list)
Выполнив вышеуказанную программу Python, мы получим следующий результат.