Python : Ensembles
Les ensembles en Python
Les ensembles en Python sont des ensembles au sens de la théorie des ensembles. Il s'agit d'un ensembles de trucs qui ne peux pas avoir de doublons, et c'est là la principale différence avec une liste :
<source lang="python"> >>> ensemble = {1, 2, 3, 2, 2, 2, 18, 65} >>> liste = [1, 2, 3, 2, 2, 2, 18, 65] >>> ensemble {1, 2, 3, 65, 18} >>> liste [1, 2, 3, 2, 2, 2, 18, 65] </source>
Opérations sur des ensembles
Il est possible d'effectuer les opérations classiques des ensembles.
Je part ici des deux ensembles suivants :
<source lang="python"> dataScientist = set(['Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS']) dataEngineer = set(['Python', 'Java', 'Scala', 'Git', 'SQL', 'Hadoop']) </source>
Et les opérations sont en elles-mêmes assez simples :
<source lang="python">
- Union
gauche.union(droite) {'gauche1', 'milieu1', 'droite2', 'droite1', 'gauche2'}
- Equivalent
gauche | droite {'gauche1', 'milieu1', 'droite2', 'droite1', 'gauche2'}
- Intersection
gauche.intersection(droite) {'milieu1'}
- Equivalent
gauche & droite {'milieu1'}
- Intersection vide: deux ensembles ayant une intersection vide (donc rien en commun)
- sont dit disjoints. On peut le tester :
gauche.isdisjoint(droite) False
- Difference
gauche.difference(droite) {'gauche1', 'gauche2'}
- Equivalent
gauche - droite {'gauche1', 'gauche2'}
- Difference symétrique
gauche.symmetric_difference(droite) {'droite1', 'gauche1', 'gauche2', 'droite2'}
- Equivalent
gauche ^ droite {'droite1', 'gauche1', 'gauche2', 'droite2'}
- Compréhension
- On peut faire des compréhensions d'ensembles, wahou
{skill for skill in ['GIT', 'PYTHON', 'SQL'] if skill not in {'GIT', 'PYTHON', 'JAVA'}} </source>