35 questions pour tester votre connaissance des ensembles Python

35 questions pour tester votre connaissance des ensembles Python

photo par Jason Villanueva de Pexels

le copy() fait une copie superficielle d’un ensemble.

s1 = {'a','b','c'}s2 = s1.copy()
s2
#=> {'c', 'b', 'a'}

Un ensemble, s1 est un surensemble d’un autre ensemble, s2, si toutes les valeurs de s2 peuvent être trouvés dans s1.

Vous pouvez vérifier si un ensemble est un sur-ensemble d’un autre ensemble avec le issuperset() méthode.

a = {10,20,30}
b = {10,20}
a.issuperset(b) #=> True
b.issuperset(a) #=> False

En plus de issuperset(), nous pouvons vérifier si un ensemble est un surensemble en utilisant le >= opérateurs de comparaison.

a = {10,20,30}
b = {10,20}
a >= b #=> True
b >= a #=> False

Parce que toutes les valeurs d’un ensemble, s1, sont dans s1, c’est un surensemble de lui-même. Bien que ce ne soit pas un surensemble approprié.

a = {10,20,30}a.issuperset(a) 
#=> True

Un ensemble, s1 est un surensemble approprié d’un autre ensemble, s2, si toutes les valeurs de s2 sont dans s1, et s1 != s2.

Cela peut être vérifié avec le > opérateur.

a = {10,20,30}
b = {10,20}
c = {10,20}
a > b #=> True
b > c #=> False

Appel du constructeur de liste, list(), sur un ensemble convertit un ensemble en liste. Mais notez que la commande n’est pas garantie.

a = {4,2,3}
list(a)
#=> [2, 3, 4]

Un ensemble peut être itéré comme n’importe quel autre itérateur avec une boucle. Mais notez encore une fois, l’ordre n’est pas garanti.

s = {'a','b','c','d','e'}for i in s:
print(i)

#=> b
#=> c
#=> e
#=> d
#=> a

Le nombre d’éléments dans un ensemble peut être retourné avec le len() une fonction.

s = {'a','b','c','d','e'}len(s)
#=> 5

Un ensemble peut être créé en utilisant la notation d’ensemble avec des accolades comme, {…}, exemple:

{1,2,3}
#=> {1, 2, 3}

Ou avec le constructeur set, exemple:

# set(1,2,3)
=> TypeError: set expected at most 1 arguments, got 3
set([1,2,3])
#=> {1, 2, 3}

Mais notez que ce dernier nécessite de passer dans un autre objet itérable comme une liste.

L’union de 2 ensembles peut être trouvée en utilisant le union() méthode.

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
s1.union(s2)
#=> {1, 2, 3, 4, 5, 6, 7, 8}

Il peut également être trouvé avec le | opérateur.

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
s1 | s2
#=> {1, 2, 3, 4, 5, 6, 7, 8}
photo par Café Di Bella de Pexels

L’intersection de 2 ensembles peut être prise avec le intersection() méthode.

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
s1.intersection(s2)
# => {4, 5}

Il peut également être pris avec le & opérateur.

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
s1 & s2
# => {4, 5}

Cela peut être trouvé avec le difference() méthode.

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
s1.difference(s2)
{1, 2, 3}

Il peut également être trouvé avec le - opérateur.

s1 = {1,2,3,4,5}
s2 = {4,5,6,7,8}
s1 - s2
{1, 2, 3}

remove() supprime un élément d’un ensemble par valeur.

s = {'x','y','z'}
s.remove('x')
s
#=> {'y', 'z'}

pop() supprime et renvoie un élément d’un ensemble, traitant l’ensemble comme une file d’attente non ordonnée.

s = {'z','y','x'}
s.pop()
s
#=> {'y', 'z'}

Ensembles, s1 et s2 sont disjoints s’ils n’ont aucun élément en commun.

a = {1,2,3}
b = {4,5,6}
c = {3}
a.isdisjoint(b) #=> True
a.isdisjoint(c) #=> False

le update() ajoute des éléments d’un autre ensemble.

a = {1,2,3}
b = {3,4,5}
a.update(b)
a
#=> {1, 2, 3, 4, 5}

Cela peut également être fait avec le |= opérateur.

a = {1,2,3}
b = {3,4,5}
a |= b
a
#=> {1, 2, 3, 4, 5}

Notez que ceci est différent de union. union() renvoie un nouvel ensemble au lieu de mettre à jour un ensemble existant.

clear() supprime tous les éléments d’un ensemble. L’ensemble peut ensuite être utilisé pour de futures opérations et stocker d’autres valeurs.

a = {1,2,3}
a.clear()
a
#=> set()

discard() supprime un élément si cet élément existe, sinon il ne fait rien.

a = {1,2,3}
a.discard(1)
a
#=> {2, 3}
a = {1,2,3}
a.discard(5)
a
#=> {1, 2, 3}

Comparez cela à remove() ce qui génère une erreur si vous essayez de supprimer un élément qui n’existe pas.

a = {1,2,3}
a.remove(5)
a
#=> KeyError: 5

Seules les clés du dictionnaire existeront dans l’ensemble renvoyé.

d = {'dog': 1, 'cat':2, 'fish':3}
set(d)
#=> {'cat', 'dog', 'fish'}

Oui. Mais les valeurs de chaque ensemble peuvent ne pas être jointes dans l’ordre.

Remarquez comment la 1ère valeur de l’ensemble entier a été combinée avec la 3ème valeur de l’ensemble de lettres, (1, 'c').

z = zip(
{1,2,3},
{'a','b','c'}
)
list(z)
#=> [(1, 'c'), (2, 'b'), (3, 'a')]