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

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

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

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, содержит ли множество (set) в Python только строки. Мы начнем с изучения основ множеств строк, включая их создание, уникальность элементов и общие операции над множествами, такие как объединение и пересечение. Вы создадите файл string_sets.py в директории ~/project и используете команду python для выполнения фрагментов кода, наблюдая, как множества обрабатывают дубликаты элементов и выполняют операции над множествами.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/BasicConceptsGroup -.-> python/type_conversion("Type Conversion") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") 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/type_conversion -.-> lab-559560{{"Как проверить, содержит ли множество в Python только строки"}} python/conditional_statements -.-> lab-559560{{"Как проверить, содержит ли множество в Python только строки"}} python/sets -.-> lab-559560{{"Как проверить, содержит ли множество в Python только строки"}} python/build_in_functions -.-> lab-559560{{"Как проверить, содержит ли множество в Python только строки"}} python/data_collections -.-> lab-559560{{"Как проверить, содержит ли множество в Python только строки"}} end

Изучение множеств строк

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

Сначала создадим простое множество строк. Откройте редактор VS Code в среде LabEx. Создайте новый файл с именем string_sets.py в директории ~/project.

## ~/project/string_sets.py
string_set = {"apple", "banana", "cherry"}
print(string_set)

Сохраните файл. Теперь запустите скрипт с помощью команды python в терминале:

python ~/project/string_sets.py

Вы должны увидеть следующий вывод (порядок элементов может отличаться, так как множества неупорядочены):

{'cherry', 'banana', 'apple'}

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

## ~/project/string_sets.py
string_set = {"apple", "banana", "cherry", "apple"}
print(string_set)

Сохраните файл и запустите его снова:

python ~/project/string_sets.py

Вывод будет следующим:

{'cherry', 'banana', 'apple'}

Обратите внимание, что дубликат "apple" был автоматически удален. Множества хранят только уникальные элементы.

Далее изучим некоторые общие операции над множествами. Создадим два множества и выполним операции объединения и пересечения.

## ~/project/string_sets.py
set1 = {"apple", "banana", "cherry"}
set2 = {"banana", "date", "fig"}

## Union of two sets
union_set = set1.union(set2)
print("Union:", union_set)

## Intersection of two sets
intersection_set = set1.intersection(set2)
print("Intersection:", intersection_set)

Сохраните файл и запустите его:

python ~/project/string_sets.py

Вывод будет следующим:

Union: {'cherry', 'banana', 'date', 'apple', 'fig'}
Intersection: {'banana'}

Объединение двух множеств содержит все уникальные элементы из обоих множеств. Пересечение содержит только те элементы, которые общие для обоих множеств.

Использование функции all() вместе с isinstance()

На этом этапе вы научитесь использовать функцию all() в сочетании с isinstance() для проверки того, являются ли все элементы множества строками.

Функция all() возвращает True, если все элементы итерируемого объекта (например, множества) являются истинными. Если хотя бы один элемент является ложным, функция all() возвращает False.

Функция isinstance() проверяет, является ли объект экземпляром определенного класса. В нашем случае мы будем использовать ее для проверки, является ли каждый элемент множества строкой.

Начнем с создания множества, содержащего только строки. Откройте файл string_sets.py в директории ~/project с помощью редактора VS Code. Измените файл, добавив следующий код:

## ~/project/string_sets.py
string_set = {"apple", "banana", "cherry"}

## Check if all elements are strings
all_strings = all(isinstance(item, str) for item in string_set)
print("Are all elements strings?", all_strings)

Сохраните файл. Теперь запустите скрипт с помощью команды python в терминале:

python ~/project/string_sets.py

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

Are all elements strings? True

Это подтверждает, что все элементы множества являются строками.

Теперь добавим в множество нестроковый элемент (например, целое число) и посмотрим, что произойдет:

## ~/project/string_sets.py
string_set = {"apple", "banana", "cherry", 123}

## Check if all elements are strings
all_strings = all(isinstance(item, str) for item in string_set)
print("Are all elements strings?", all_strings)

Сохраните файл и запустите его снова:

python ~/project/string_sets.py

Вывод будет следующим:

Are all elements strings? False

Как и ожидалось, функция all() возвращает False, так как не все элементы множества являются строками.

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

Проверка на пустоту множества

На этом этапе вы научитесь проверять, является ли множество пустым в Python. Пустым множеством называется множество, которое не содержит элементов.

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

Для создания пустого множества можно использовать конструктор set() без аргументов. Изменим файл string_sets.py в директории ~/project с помощью редактора VS Code, добавив следующий код:

## ~/project/string_sets.py
empty_set = set()

## Check if the set is empty
if not empty_set:
    print("The set is empty")
else:
    print("The set is not empty")

Сохраните файл. Теперь запустите скрипт с помощью команды python в терминале:

python ~/project/string_sets.py

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

The set is empty

Это подтверждает, что множество empty_set действительно пустое.

Теперь создадим непустое множество и проверим, работает ли наша логика:

## ~/project/string_sets.py
non_empty_set = {"apple", "banana", "cherry"}

## Check if the set is empty
if not non_empty_set:
    print("The set is empty")
else:
    print("The set is not empty")

Сохраните файл и запустите его снова:

python ~/project/string_sets.py

Вывод будет следующим:

The set is not empty

Как и ожидалось, код правильно определяет, что множество не пустое.

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

## ~/project/string_sets.py
empty_set = set()

## Check if the set is empty using len()
if len(empty_set) == 0:
    print("The set is empty")
else:
    print("The set is not empty")

Сохраните файл и запустите его:

python ~/project/string_sets.py

Вывод будет следующим:

The set is empty

Это демонстрирует альтернативный метод проверки множества на пустоту.

Резюме

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

Также в практике рассмотрены вопросы создания Python - скрипта, сохранения его в директории ~/project и выполнения с использованием команды python в терминале. Вы наблюдали вывод операций над множествами, отметив, что порядок элементов может различаться из - за неупорядоченного характера множеств.