Уроки Python с нуля / #11 – Множества (set и frozenset)

3 min read 2 hours ago
Published on Feb 04, 2025 This response is partially generated with the help of AI. It may contain inaccuracies.

Table of Contents

Introduction

In this tutorial, we will explore sets in Python, specifically the set and frozenset types. These data structures are essential for storing collections of unique items and performing various operations efficiently. By the end of this guide, you will understand how to create, manipulate, and utilize sets in your Python programs.

Step 1: Understanding Sets

Sets are a built-in data type in Python that allow you to store collections of unique items. They are unordered, meaning that the elements do not have a defined order. Key features of sets include:

  • Uniqueness: Each element in a set is unique, which means duplicates are automatically removed.
  • Mutable: You can add or remove items from a set after it has been created.

Practical Tip

Use sets when you need to ensure that a collection contains no duplicates, such as when working with user IDs or any other unique identifiers.

Step 2: Creating a Set

You can create a set in Python using curly braces {} or the set() constructor. Here’s how to create a set:

Using Curly Braces

my_set = {1, 2, 3, 4}

Using the set() Constructor

my_set = set([1, 2, 3, 4])

Common Pitfall

Remember that an empty set must be created using set() and not {}, as {} creates an empty dictionary.

Step 3: Working with Sets

Once you have created a set, you can perform various operations:

Adding Elements

To add an element to a set, use the add() method:

my_set.add(5)

Removing Elements

To remove an element, use the remove() or discard() method:

my_set.remove(3)  # Raises KeyError if 3 is not found
my_set.discard(4)  # Does not raise an error if 4 is not found

Checking Membership

To check if an item is in a set, use the in keyword:

if 2 in my_set:
    print("2 is in the set")

Step 4: Removing Duplicates from a List

You can easily remove duplicates from a list by converting it to a set:

my_list = [1, 2, 2, 3, 4, 4]
unique_items = list(set(my_list))

Note

The order of elements may change when converting from a list to a set since sets are unordered.

Step 5: Exploring Frozensets

A frozenset is similar to a set but is immutable, meaning that once created, it cannot be modified. You can create a frozenset using the frozenset() constructor:

my_frozenset = frozenset([1, 2, 3, 4])

Use Cases for Frozensets

  • Useful when you need a set that should not change, such as keys in a dictionary.
  • Can be used when you want to combine sets without risking modification.

Conclusion

In this tutorial, we covered the fundamentals of sets and frozensets in Python. You learned how to create sets, add and remove elements, check for membership, and remove duplicates from lists.

Next Steps

To deepen your understanding, consider practicing by creating sets with different data types, exploring set operations like union and intersection, and experimenting with frozensets in your projects. Happy coding!