Ensembles (données non ordonnées avec opérations logiques optimisées)

Types de données en Python

Jason Myers

Instructor

Ensemble

  • Éléments uniques
  • Non ordonné
  • Mutable
  • Implémentation Python de la théorie des ensembles en mathématiques
Types de données en Python

Créer des ensembles

  • Les ensembles sont créés à partir d'une liste
cookies_eaten_today = ['chocolate chip', 'peanut butter', 
   ...: 'chocolate chip', 'oatmeal cream', 'chocolate chip']

types_of_cookies_eaten = set(cookies_eaten_today)
print(types_of_cookies_eaten)
set(['chocolate chip', 'oatmeal cream', 'peanut butter'])
Types de données en Python

Modifier des ensembles

  • .add() ajoute un seul élément
types_of_cookies_eaten.add('biscotti')

types_of_cookies_eaten.add('chocolate chip')

print(types_of_cookies_eaten)
set(['chocolate chip', 'oatmeal cream', 'peanut butter', 'biscotti'])
Types de données en Python

Mettre à jour des ensembles

  • .update() fusionne un autre ensemble ou une liste
cookies_hugo_ate = ['chocolate chip', 'anzac']

types_of_cookies_eaten.update(cookies_hugo_ate)

print(types_of_cookies_eaten)
set(['chocolate chip', 'anzac', 'oatmeal cream',  'peanut butter', 'biscotti'])
Types de données en Python

Retirer des données d'ensembles

  • .discard() retire sans erreur un élément par valeur
  • .pop() retire et retourne un élément arbitraire (KeyError si vide)
types_of_cookies_eaten.discard('biscotti')

print(types_of_cookies_eaten)
set(['chocolate chip', 'anzac', 'oatmeal cream', 'peanut butter'])
types_of_cookies_eaten.pop()
types_of_cookies_eaten.pop()
'chocolate chip'
'anzac'
Types de données en Python

Opérations sur les ensembles — similarités

  • La méthode .union() retourne l'ensemble de tous les noms (« or »)
  • La méthode .intersection() trouve les données communes (« and »)
cookies_jason_ate = set(['chocolate chip', 'oatmeal cream',
'peanut butter'])
cookies_hugo_ate = set(['chocolate chip', 'anzac'])

cookies_jason_ate.union(cookies_hugo_ate)
set(['chocolate chip', 'anzac', 'oatmeal cream', 'peanut butter'])
cookies_jason_ate.intersection(cookies_hugo_ate)
set(['chocolate chip'])
Types de données en Python

Opérations sur les ensembles — différences

  • La méthode .difference() repère les données présentes dans l'ensemble ciblé mais absentes des arguments (« - »)
  • Le choix de la cible est crucial !
cookies_jason_ate.difference(cookies_hugo_ate)
set(['oatmeal cream', 'peanut butter'])
cookies_hugo_ate.difference(cookies_jason_ate)
set(['anzac'])
Types de données en Python

Passons à la pratique !

Types de données en Python

Preparing Video For Download...