Как проверить, содержит ли список только уникальные элементы в Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, содержит ли список только уникальные элементы на Python. Лабораторная работа сосредоточена на использовании множеств (sets) Python для определения и нахождения уникальных элементов в списке.

В рамках лабораторной работы вы пройдете пошаговое руководство по созданию Python-скрипта unique_elements.py, который демонстрирует, как работают множества. Вы создадите список с дублирующимися элементами, преобразуете его в множество, чтобы удалить дубликаты, а затем выведете на экран как исходный список, так и полученное множество уникальных элементов. Сравнивая исходный список с множеством, вы поймете, как можно использовать множества для определения и извлечения уникальных элементов.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/DataStructuresGroup -.-> python/sets("Sets") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/sets -.-> lab-559529{{"Как проверить, содержит ли список только уникальные элементы в Python"}} python/build_in_functions -.-> lab-559529{{"Как проверить, содержит ли список только уникальные элементы в Python"}} python/data_collections -.-> lab-559529{{"Как проверить, содержит ли список только уникальные элементы в Python"}} end

Определение уникальных элементов

На этом этапе вы научитесь определять уникальные элементы с использованием множеств (sets) Python. Множества - это фундаментальная структура данных в Python, которая хранит только уникальные, неупорядоченные элементы. Это означает, что если вы попытаетесь добавить дублирующийся элемент в множество, он просто будет проигнорирован. Понимание множеств является важным для таких задач, как удаление дубликатов из списка или проверка наличия элемента в коллекции.

Начнем с создания Python-скрипта, который демонстрирует, как работают множества.

  1. Откройте WebIDE. Слева вы должны увидеть проводник файлов, а справа - текстовый редактор.

  2. В проводнике файлов перейдите в каталог проекта: /home/labex/project.

  3. Создайте новый файл с именем unique_elements.py, щелкнув правой кнопкой мыши в проводнике файлов и выбрав "Новый файл".

  4. Откройте файл unique_elements.py в редакторе и добавьте следующий код:

## Create a list with duplicate elements
my_list = [1, 2, 2, 3, 4, 4, 5]

## Convert the list to a set to remove duplicates
my_set = set(my_list)

## Print the original list and the set
print("Original List:", my_list)
print("Set of Unique Elements:", my_set)

В этом скрипте сначала создается список с именем my_list, который содержит дублирующиеся элементы. Затем этот список преобразуется в множество с именем my_set. Функция set() автоматически удаляет все дублирующиеся элементы, оставляя только уникальные значения. В конце скрипт выводит на экран как исходный список, так и множество уникальных элементов.

  1. Сохраните файл unique_elements.py.

  2. Теперь запустите скрипт, используя следующую команду в терминале:

python unique_elements.py

Вы должны увидеть следующий вывод:

Original List: [1, 2, 2, 3, 4, 4, 5]
Set of Unique Elements: {1, 2, 3, 4, 5}

Как вы можете видеть, множество my_set содержит только уникальные элементы из исходного списка my_list. Порядок элементов в множестве может отличаться от исходного списка, так как множества неупорядочены.

В этом примере показано базовое использование множеств для определения уникальных элементов в Python. В следующих шагах вы рассмотрите более продвинутые операции с множествами.

Сравнение len() и len(set())

На этом этапе вы научитесь использовать функцию len() для определения количества элементов в списке и сравнения его с количеством уникальных элементов в множестве, созданном из того же списка. Это полезный метод для определения количества дублирующихся элементов в списке.

Функция len() возвращает количество элементов в объекте. При применении к списку она возвращает общее количество элементов, включая дубликаты. При применении к множеству она возвращает количество уникальных элементов.

Давайте модифицируем Python-скрипт из предыдущего шага, чтобы сравнить длины исходного списка и множества уникальных элементов.

  1. Откройте файл unique_elements.py в WebIDE, который вы создали на предыдущем этапе. Он должен находиться в /home/labex/project.

  2. Измените файл unique_elements.py, добавив следующий код:

## Create a list with duplicate elements
my_list = [1, 2, 2, 3, 4, 4, 5]

## Convert the list to a set to remove duplicates
my_set = set(my_list)

## Print the length of the original list and the set
print("Length of Original List:", len(my_list))
print("Length of Set of Unique Elements:", len(my_set))

## Calculate the number of duplicate elements
num_duplicates = len(my_list) - len(my_set)
print("Number of Duplicate Elements:", num_duplicates)

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

  1. Сохраните файл unique_elements.py.

  2. Запустите скрипт, используя следующую команду в терминале:

python unique_elements.py

Вы должны увидеть следующий вывод:

Length of Original List: 7
Length of Set of Unique Elements: 5
Number of Duplicate Elements: 2

Этот вывод показывает, что исходный список содержит 7 элементов, а множество уникальных элементов содержит 5 элементов. Разность между этими длинами (7 - 5 = 2) указывает, что в исходном списке есть 2 дублирующихся элемента.

В этом примере показано, как использовать функцию len() вместе с множествами для определения и подсчета дублирующихся элементов в списке.

Проверка с использованием преобразования в множество (set())

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

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

Давайте модифицируем Python - скрипт из предыдущих шагов, чтобы проверить, содержит ли список только уникальные элементы с использованием преобразования в множество.

  1. Откройте файл unique_elements.py в WebIDE, который вы создали на предыдущих шагах. Он должен находиться в /home/labex/project.

  2. Измените файл unique_elements.py, добавив следующий код:

## Create a list with or without duplicate elements
my_list = [1, 2, 3, 4, 5]  ## Example with unique elements
## my_list = [1, 2, 2, 3, 4, 5]  ## Example with duplicate elements

## Convert the list to a set
my_set = set(my_list)

## Check if the list contains only unique elements
if len(my_list) == len(my_set):
    print("The list contains only unique elements.")
else:
    print("The list contains duplicate elements.")

В этом скрипте мы сначала определяем список my_list. Вы можете выбрать использовать пример с уникальными элементами или пример с дублирующимися элементами, закомментировав/раскомментировав соответствующие строки. Затем мы преобразуем список в множество и сравниваем длины списка и множества. Если длины равны, мы выводим сообщение, указывающее, что список содержит только уникальные элементы; в противном случае мы выводим сообщение, указывающее, что список содержит дублирующиеся элементы.

  1. Сохраните файл unique_elements.py.

  2. Запустите скрипт, используя следующую команду в терминале:

python unique_elements.py

Если вы используете пример с уникальными элементами (my_list = [1, 2, 3, 4, 5]), вы должны увидеть следующий вывод:

The list contains only unique elements.

Если вы используете пример с дублирующимися элементами (my_list = [1, 2, 2, 3, 4, 5]), вы должны увидеть следующий вывод:

The list contains duplicate elements.

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

Резюме

В этом практическом занятии (лабораторной работе) вы научились определять уникальные элементы с использованием множеств (sets) в Python. В рамках практики вы создали Python - скрипт с именем unique_elements.py, чтобы продемонстрировать, как работают множества. Вы создали список с дублирующимися элементами, а затем преобразовали его в множество с помощью функции set(), которая автоматически удаляет все дублирующиеся элементы, оставляя только уникальные значения.

Затем скрипт вывел на экран как исходный список, так и множество уникальных элементов, показывая, как множества можно использовать для извлечения уникальных значений из списка. Вы заметили, что порядок элементов в множестве может отличаться от порядка в исходном списке из - за неупорядоченного характера множеств.