Résumé détaillé

Résumé détaillé

Type abstrait : tableau #

Type abstrait #

Un tableau est une collection numérotée et mutable d’objets d’un même type.

On doit pouvoir :

  • les créer, vide ou avec des valeurs,
  • mesurer leur taille,
  • accéder à un élément par son indice,
  • modifieur leur contenu (ajouter, retirer, changer un élément) par leur indice

Implémentation Python : list #

L’implémentation la plus fidèle de ce type abstrait en Python est le type list

list #

Run Reset Download Stop

Variantes : tuple, str #

Les tuple c’est comme les list mais non mutable et plus rapide.

Une fois crées on ne peut les modifier.

tuple #

Run Reset Download Stop
Les str pour string ou chaînes de caractères se comportent comme des tuple.

On peut les créer, accéder aux élément, tester la présence d’une sous-chaîne, itérer etc. mais pas les modifier.

str #

Run Reset Download Stop

Type abstrait : tableau associatif #

Type abstrait #

Un tableau associatif ou dictionnaire est une collection qui associé des clés à des valeurs.

L’intérêt est de pouvoir accéder en temps constant à une valeur par sa clé et de tester, toujours en temps constant, la présence d’une valeur dans la clé.

Ce sont des collections mutables, on peut changer leur contenu.

Implémentation Python : dict #

L’implémentation la plus fidèle en Python est le type dict

dict #

Run Reset Download Stop

Itération #

sur les str, tuple, list #

La même syntaxe pour les trois :

  • sur les valeurs directement (on n’a pas besoin de l’indice):

    for elt in collection:
        faire un truc à elt
    

    itérer sur les valeurs directement #

    Run Reset Download Stop
  • sur les indices (lorsqu’on en a besoin)

    for i in range(len(collection)):
        val = collection[i]
        faire un truc à val ou à i 
    

    itérer sur les indices #

    Run Reset Download Stop

sur les dict #

.keys() ou directement #

Run Reset Download Stop

.items Sur les paires (clé, valeur) #

Run Reset Download Stop

.valeurs sur les valeurs seulement, on n’a pas la clé… #

Run Reset Download Stop

Il n’y a pas d’indice dans un dict donc pas de :

dictionnaire = {"a": 1, "b": 2}

for i in range(len(dictionnaire)): 
    val = dictionnaire[i]
    # provoque une KeyError

Comparaison list vs dict #

Avec :

tab = [12, 10, 9, 20, 14]

repertoire = {
    "Paul": "0775654412", 
    "Jacques": "0677744111", 
    "Martine": "0122334455"
}

# notez la syntaxe différente : 
# list: [ ... ] 
# dict: { ... } et : entre les clés et valeurs
  • Les list sont plus légers que les dict,
  • tab[4] : on accède aux éléments d’une list par leur indice,
  • repertoire["Jacques"] : on accède aux valeurs des dict par leur clé,
  • 9 in tab : fonctionne mais est lent. Python doit vérifier un par un les éléments,
  • "Paul" in repertoire : très rapide, temps constant,
  • for elt in tab : rapide,
  • for cle in dictionnaire : lent.

list et dict par compréhension #

list par compréhension #

Les doubles des 10 premiers entiers : #

Run Reset Download Stop

Les doubles des premiers entiers pairs : #

Run Reset Download Stop

Les produits de tous les entiers entre 0 et 5 #

Run Reset Download Stop

Une matrice de sommes #

Run Reset Download Stop

dict par compréhension #

Même syntaxe.

dict par compréhension avec ou sans filtre #

Run Reset Download Stop