La fonction frozenset en Python

Article publié le vendredi 8 septembre 2023 et mis à jour le mercredi 3 avril 2024.

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. 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.

Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.