English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Python

Contrôle de flux Python

Fonctions en Python

Types de données en Python

Opérations de fichiers Python

Objets et classes Python

Dates et heures Python

Connaissances avancées Python

Manuel de référence Python

Ensemble (Set) en Python

Dans cet article, vous apprendrez tout sur les ensembles Python ; comment les créer, ajouter ou supprimer des éléments, et toutes les opérations que vous pouvez effectuer sur les ensembles en Python.

Qu'est-ce qu'un ensemble en Python ?

Les ensembles sont des ensembles d'éléments non ordonnés. Chaque élément est unique (sans éléments répétés) et doit être immutable (ne peut pas être modifié).

Cependant, l'ensemble lui-même est mutable. Nous pouvons y ajouter ou supprimer des éléments.

Les ensembles peuvent être utilisés pour effectuer des opérations mathématiques sur des ensembles, telles que l'union, l'intersection, la différence symétrique, etc.

Comment créer un ensemble ?

En plaçant tous les éléments (éléments) entre crochets {} et en les séparant par des virgules ou en utilisant des fonctions intégrées pour créer un ensemble set().

Il peut avoir un nombre quelconque de projets, et ils peuvent avoir des types différents (entiers, nombres flottants, tuples, chaînes, etc.). Mais les ensembles ne peuvent pas avoir d'éléments mutables (par exemplelisteoudictionnaire) en tant qu'éléments.

# Ensemble d'entiers
my_set = {1, 2, 3}
print(my_set)
# Ensemble de types de données mélangés
my_set = {1.0, "Hello", (1, 2, 3)}
print(my_set)

essayez également l'exemple suivant.

# Ensemble sans répétitions
# Sortie: {1, 2, 3, 4}
my_set = {1,2,3,4,3,2}
print(my_set)
# Un ensemble ne peut pas contenir des éléments mutables
# ici [3,4] est une liste mutable
# Si vous décommentez la ligne12ligne,
# Cela entraînera une erreur.
# Erreur de type: type non hachable: 'list'
#my_set = {1, 2, [3, 4])
# Nous pouvons générer un ensemble à partir d'une liste
# Sortie: {1, 2, 3}
my_set = set([1,2,3,2])
print(my_set)

Créer un ensemble vide est un peu spécial.

Les parenthèses vides {} créent un dictionnaire vide en Python. Pour créer un ensemble sans éléments, nous utilisons la fonction set() sans paramètres.

# Initialiser avec {}
a = {}
# Vérifier le type de données de a
# Sortie: <class 'dict'>
print(type(a))
# Initialiser avec set()
a = set()
# Vérifier le type de données de a
# Sortie: <class 'set'>
print(type(a))

Comment modifier un ensemble en Python ?

Les ensembles sont modifiables. Mais étant donné qu'ils sont sans ordre, les indices n'ont pas de sens.

Nous ne pouvons pas utiliser d'indices ou de tranches pour accéder ou modifier les éléments de l'ensemble. Les ensembles ne le supportent pas.

Nous pouvons utiliser la méthode add() pour ajouter un élément unique, et la méthode update() pour ajouter plusieurs éléments. La méthode update() peut prendretuple, liste,chaîneou un autre ensemble en tant que paramètre. Dans tous les cas, évitez les répétitions.

# 初始化 my_set
my_set = {1,3}
print(my_set)
# Si vous décommentez la ligne9ligne,
# Vous obtiendrez une erreur
# Erreur de type: l'objet 'set' ne prend pas en charge l'indexation
#my_set[0]
# Ajouter un élément
# Sortie: {1, 2, 3}
my_set.add(2)
print(my_set)
# Ajouter plusieurs éléments
# Sortie: {1, 2, 3, 4}
my_set.update([2,3,4])
print(my_set)
# Ajouter une liste et un ensemble
# Sortie: {1, 2, 3, 4, 5, 6, 8}
my_set.update([4,5], {1,6,8)
print(my_set)

Lorsque vous exécutez ce programme, la sortie est :

{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}

Comment supprimer un élément d'un ensemble ?

Vous pouvez utiliser les méthodes discard() et remove() pour supprimer un élément spécifique de l'ensemble.

La seule différence entre eux est que si vous utilisez discard(), et que l'élément n'existe pas dans l'ensemble, il reste inchangé. Cependant, remove() lève une erreur dans ce cas.

L'exemple suivant va expliquer cela.

# 初始化 my_set
my_set = {1, 3, 4, 5, 6}
print(my_set)
# Abandonner un élément
# Sortie: {1, 3, 5, 6}
my_set.discard(4)
print(my_set)
# Supprimer un élément
# Sortie: {1, 3, 5}
my_set.remove(6)
print(my_set)
# Abandonner un élément
# Ne se trouve pas dans my_set
# Sortie: {1, 3, 5}
my_set.discard(2)
print(my_set)
# Supprimer un élément
# Ne se trouve pas dans my_set
# Si #my_set.remove(2),
# L'erreur sera levée.
# Output: KeyError: 2
#my_set.remove(2)

De même, nous pouvons utiliser la méthode pop() pour supprimer et renvoyer un élément.

Les collections sont non ordonnées et il n'est pas possible de déterminer quel élément sera éjecté. C'est complètement aléatoire.

Nous pouvons également utiliser la méthode clear() pour supprimer tous les éléments d'un ensemble.

# 初始化 my_set
# Output: Ensemble d'éléments uniques
my_set = set("HelloWorld")
print(my_set)
# Pop un élément
# Output: Élément aléatoire
print(my_set.pop())
# Pop un élément
# Output: Élément aléatoire
my_set.pop()
print(my_set)
# Effacer my_set
# Output: set()
my_set.clear()
print(my_set)

Opérations sur collections Python

Les collections peuvent être utilisées pour exécuter des opérations mathématiques sur des ensembles, telles que l'union, l'intersection, la différence et la différence symétrique. Nous pouvons réaliser cela à l'aide d'opérateurs ou de méthodes...

Considérons les deux ensembles suivants pour les opérations suivantes.

>>> A = {1, 2, 3, 4, 5}
>>> B = {4, 5, 6, 7, 8}

Union de collections

L'union de A et B est un ensemble de tous les éléments provenant de ces deux ensembles.

L'union est exécutée par l'opérateur |. Elle peut également être accomplie en utilisant la méthode union().

# 初始化 A 和 B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Utilisation de l'opérateur |
# Sortie: {1, 2, 3, 4, 5, 6, 7, 8}
print(A | B)

Essayer les exemples suivants dans le shell Python.

# Utilisation de la fonction union
>>> A.union(B)
{1, 2, 3, 4, 5, 6, 7, 8}
# Utilisation de la fonction de union sur B
>>> B.union(A)
{1, 2, 3, 4, 5, 6, 7, 8}

Intersection de collections

>>> BetB'sL'intersection est un ensemble d'éléments communs aux deux ensembles.

L'intersection est exécutée par l'opérateur &. L'utilisation de la méthode intersection() peut accomplir la même opération.

# 初始化 A 和 B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Utilisation de l'opérateur &
# Output: {4, 5}
print(A & B)

Essayer les exemples suivants dans le shell Python.

# Utilisation de la fonction de intersection sur A
>>> A.intersection(B)
{4, 5}
# Utilisation de la fonction de intersection sur B
>>> B.intersection(A)
{4, 5}

Différence de collections

La différence entre A et B (A-B) est un ensemble d'éléments présents uniquement dans A mais pas dans B. De même, B-A est un ensemble d'éléments présents dans B mais pas dans A.

La différence est utilisée -L'opération est exécutée par l'opérateur. L'utilisation de la méthode difference() peut accomplir la même opération.

# 初始化 A 和 B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Utilisation de la fonction de différence sur A - opérateur
# Output: {1, 2, 3}
print(A - B)

Essayer les exemples suivants dans le shell Python.

# Utilisation de la fonction de différence sur A
>>> A.difference(B)
{1, 2, 3}
# Utilisation sur B-L'opérateur est utilisé pour exécuter la différence symétrique. Vous pouvez également utiliser la méthode symmetric_difference() pour accomplir la même opération.
>>> - >>> B
{8, 6, 7}
A
# Utiliser la fonction différence sur B
{8, 6, 7}

>>> B.difference(A)

Différence symétrique de l'ensemble

La différence symétrique entre A et B est un ensemble d'éléments présents dans A et B, mais pas dans les deux éléments

# 初始化 A 和 B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Utiliser l'opérateur ^
# Sortie: {1, 2, 3, 6, 7, 8}
print(A ^ B)

Essayer les exemples suivants dans le shell Python.

# Utiliser la fonction symmetric_difference sur A
>>> A.symmetric_difference(B)
{1, 2, 3, 6, 7, 8}
# Utiliser la fonction symmetric_difference sur B
>>> B.symmetric_difference(A)
{1, 2, 3, 6, 7, 8}

Différentes méthodes Set Python

Il y a beaucoup de méthodes Set, certaines ont déjà été utilisées. Voici la liste de toutes les méthodes disponibles pour l'objet set.

Méthodes Set Python
Méthode描述
add()Ajouter un élément à l'ensemble
clear()Supprimer tous les éléments de l'ensemble
copy()Retourner une copie de l'ensemble
difference()Retourner la différence des deux ou plusieurs ensembles sous forme d'un nouvel ensemble
difference_update()Supprimer tous les éléments de l'autre ensemble de cet ensemble
discard()Supprimer l'élément de l'ensemble s'il est un membre. (Si l'élément n'est pas dans l'ensemble, aucune action n'est effectuée)
intersection()Retourner l'intersection des deux ensembles sous forme d'un nouvel ensemble
intersection_update()Mettre à jour l'ensemble avec l'intersection de lui-même et d'un autre
isdisjoint()Retourner True si l'intersection des deux ensembles est vide 
issubset()Retourner True si un autre ensemble contient cet ensemble
issuperset()Retourner True si cet ensemble contient un autre ensemble
pop()Supprimer et retourner un élément arbitraire de l'ensemble. Lève une KeyError si l'ensemble est vide
remove()Supprimer un élément de l'ensemble. Si l'élément n'est pas un membre, une erreur KeyError est levée
symmetric_difference()Retourner la différence symétrique des deux ensembles sous forme d'un nouvel ensemble
symmetric_difference_update()Mettre à jour un ensemble avec la différence symétrique de lui-même et d'un autre
union()Retourner l'union de l'ensemble dans un nouvel ensemble
update()Mettre à jour l'ensemble avec l'union de lui-même et d'autres éléments

其他集合操作

集合会员资格测试

我们可以使用in关键字来测试项目是否存在于集合中。

# 初始化 my_set
my_set = set("apple")
# 检查“a”是否存在
# 输出: True
print('a' in my_set)
# 检查“p”是否存在
# 输出: False
print('p' not in my_set)

遍历集合

使用for循环,我们可以遍历集合中的每个项目。

>>> for letter in set("apple"):
...     print(letter)
...    
a
p
e
l

集合与内置函数

内置函数如all()、any()、enumerate()、len()、max()、min()、sort()、sum()等常用来与set一起执行不同的任务。

带内置功能
功能描述
all()

如果集合的所有元素都为true(或者集合为空),则返回True。

any()

如果集合中的任何元素为true,则返回True。 如果集合为空,则返回False。

enumerate()返回一个枚举对象。它包含成对的所有项的索引和值。
len()返回集合中的长度(项目数)。
max()返回集合中最大的项目。
min()返回集合中最小的项目。
sorted()从集合中的元素返回一个新的排序列表(不对集合本身进行排序)。
sum()返回集合中所有元素的总和。

Python Frozenset

Frozenset是具有集合特征的新类,但是一旦分配,就不能更改其元素。元组是不可变列表,而冻结集是不可变集。

可变的集合不可散列,因此不能用作字典键。另一方面,frozenset是可哈希化的,可用作字典的键。

可以使用函数Frozenset()创建Frozensets

此数据类型支持的方法,如copy(),difference(),intersection(),isdisjoint(),issubset(),issuperset(),symmetric_difference()和union()。由于不可变,因此没有添加或删除元素的方法。

# 初始化 A 和 B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

Try these examples in the Python shell.

>>> A.isdisjoint(B)
False
>>> A.difference(B)
frozenset({1, 2)
>>> A | B
frozenset({1, 2, 3, 4, 5, 6)
>>> A.add(3)
...
AttributeError: 'frozenset' object has no attribute 'add'