Blog • code, python

La fonction frozenset en Python

La fonction native frozenset() retourne un frozenset en en créant un ou bien en transformant un autre objet Python en frozenset si c'est possible.

Publie le 8 septembre 2023 • 4 min read
Cours recommandé

Python débutant

Bases du langageExercices corrigésQuatre projets progressifs

Apprenez Python à partir de zéro : variables, conditions, boucles, fonctions et structures de données. Chaque notion est suivie d'exercices corrigés automatiquement, et chaque chapitre se termine par un quiz.

Découvrir le cours

La fonction native frozenset() retourne un frozenset en en créant un ou bien en transformant un autre objet Python en frozenset si c'est possible. Les éléments du frozenset sont entre les symboles {} et un frozenset ne contient pas de doublons.

Un frozenset est immuable, on ne peut pas assigner de nouvelles valeurs à un frozenset après sa déclaration initiale. C'est ce qui le différencie des objets de type set.

On peut donc dire qu'un frozenset est une version immuable de set. Alors que les éléments d'un set peuvent être modifiés après sa déclaration, les éléments d'un frozenset ne peuvent pas l'être, Python renvoie une erreur.

Les frozenset sont souvent utilisés comme clés de dictionnaires ou bien quand on compare un set à un set de valeurs fixes.

frozenset([True, False, True])  # frozenset({True, False})
frozenset([0, 1, 2])  # frozenset({0, 1, 2})
frozenset([])  # frozenset()

💡 Vous voulez en apprendre plus sur les fonctions comme frozenset() ? J'ai écrit un article qui reprend toutes les fonctions natives en Python.

Quelle est la syntaxe de la fonction frozenset ?

La syntaxe de la fonction frozenset() en Python est :

frozenset()
frozenset(iterable)

Quels paramètres prend la fonction frozenset ?

La fonction frozenset() prend 0 ou 1 paramètre :

  • iterable (optionnel) : un itérable comme une liste, un frozenset, un dictionnaire, un frozenset, une string ou un autre type d'objet python sur lequel on peut boucler.

Quelle valeur renvoie la fonction frozenset ?

La fonction frozenset() retourne :

  • Le constructeur d'un nouveau frozenset vide frozenset() si aucun paramètre n'a été fourni
  • Un frozenset qui reprend les éléments de l'iterable passé en paramètre sans doublons

Exemples de la fonction frozenset avec des listes

frozenset([True, True, True])  # frozenset({True})
frozenset([])  # frozenset()

Exemples de la fonction frozenset avec des dictionnaires

frozenset({'a': False, 'b': False, 'c': False})  # frozenset({'a', 'b', 'c'})
frozenset({})  # frozenset()

Exemples de la fonction frozenset avec des tuples

frozenset((False, True, True))  # frozenset({False, True})
frozenset(())  # frozenset()

Exemples de la fonction frozenset avec des strings

frozenset('123')  # frozenset({'1', '2', '3'})
frozenset('')  # frozenset()

Quelles sont les méthodes d'un frozenset ?

Les objets de type frozenset offrent plusieurs méthodes : copy, difference, intersection, isdisjoint, issubset, issuperset, symmetric_difference ou encore union.

Si vous connaissez le type set, vous pouvez voir que les frozensets proposent une partie des mêmes, sans celles qui permettent de les modifier.

copy

a = frozenset([1, 2, 3])

b = a.copy()

print(a, b)  # frozenset({1, 2, 3}) frozenset({1, 2, 3})

difference

a = frozenset([1, 2, 3])

b = frozenset([2, 3, 4])

a.difference(b)  # frozenset({1})

intersection

a = frozenset([1, 2, 3])

b = frozenset([2, 3, 4])

a.intersection(b)  # frozenset({2, 3})

isdisjoint

a = frozenset([1, 2, 3])

b = frozenset([2, 3, 4])

a.isdisjoint(b)  # False

a = frozenset([1, 2, 3])

b = frozenset([2, 3, 4])

a.issubset(b)  # False

frozenset([1, 2]).issubset(frozenset([1, 2, 3, 4]))  # True

issuperset

a = frozenset([1, 2, 3])

b = frozenset([2, 3, 4])

a.issuperset(b)  # False

symmetric_difference

a = frozenset([1, 2, 3])

b = frozenset([2, 3, 4])

a.symmetric_difference(b)  # frozenset({1, 4})

union

a = frozenset([1, 2, 3])

b = frozenset([2, 3, 4])

a.union(b)  # frozenset({1, 2, 3, 4})

Aller plus loin avec les frozenset

Bravo 🎉 Vous savez maintenant comment utiliser les frozensets en Python.

Comme on l'a vu ensemble, les frozenset sont similaires au set sauf qu'ils sont immuable.

Vous pouvez en apprendre plus sur les set en lisant mon article sur la fonction native set en python.

Cours recommandé

Python débutant

Bases du langageExercices corrigésQuatre projets progressifs

Apprenez Python à partir de zéro : variables, conditions, boucles, fonctions et structures de données. Chaque notion est suivie d'exercices corrigés automatiquement, et chaque chapitre se termine par un quiz.

Découvrir le cours
Thomas Collart

Thomas Collart, developpeur et formateur depuis plus de 20 ans. J'ai forme 3 700 etudiants a travers mes formations en ligne, cumule plus de 2 700 000 vues et 43 800 abonnes sur YouTube, TikTok et Instagram.