La fonction set en Python

Article publié le et mis à jour le .

La fonction set en Python

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

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

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

Quelle est la syntaxe de la fonction set ?

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

set()
set(iterable)

Quels paramètres prend la fonction set ?

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

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

Quelle valeur renvoie la fonction set ?

La fonction set() retourne :

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

Exemples de la fonction set avec des listes

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

Exemples de la fonction set avec des dictionnaires

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

Exemples de la fonction set avec des tuples

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

Exemples de la fonction set avec des strings

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

Quelles sont les méthodes d’un set ?

Les objets de type set offrent plusieurs méthodes : add, clear, copy, difference, difference_update, discard, intersection, intersection_update, isdisjoint, issubset, issuperset, pop, remove, symmetric_difference, symmetric_difference_update, union ou encore update.

add

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

a.add(4)

print(a)  # {1, 2, 3, 4}

clear

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

a.clear()

print(a)  # set()

copy

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

b = a.copy()

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

difference

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

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

a.difference(b)  # {1}

difference_update

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

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

a.difference(b)  # {1}

print(a)  # {1}

discard

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

a.discard(2)

print(a) # {1, 3}

intersection

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

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

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

intersection_update

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

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

a.intersection_update(b)  # {2, 3}

print(a)  # {2, 3}

isdisjoint

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

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

a.isdisjoint(b)  # False

issubset

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

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

a.issubset(b)  # False

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

issuperset

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

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

a.issuperset(b)  # False

pop

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

a.pop()

print(a) # {1, 2}

remove

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

a.remove(3)

print(a) # {1, 2}

symmetric_difference

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

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

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

symmetric_difference_update

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

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

a.symmetric_difference_update(b)  # {1, 4}

print(a)  # {1, 4}

union

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

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

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

update

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

a.update('a', 'b', 'c')

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