Vous êtes sur la page 1sur 4

Structure de données

Listes

Dé nition: Ensemble ni éléments, potentiellement de types di érents.

Syntaxe: entre crochets, éléments séparés par des virgules.

A. Construction

- Énumérer les éléments à la main entre crochets sépares par des virgules

- Par compréhension, L= [i for i in itérable]

- Concaténation, [0,1,2]+[3,4] = [0,1,2,3,4]

- list(itérable)

- [0]*x

B. Accès aux éléments

- L[4] = 4 si L = [0,1,2,3,4]

- Les éléments sont indicés de 0 à la (taille de la liste-1) et L[i]= élément d’indice i

- len(L) = 5 = taille de la liste

- L[-1] = 4 = L[4]

- Si L[-7] erreur

C. Modi cation des éléments

- L[I] = b, changer l’élément d’indice i en b

D. Slicing

- L[d:f] renvoie la liste composée des éléments


entre d et f-1
- Si d >=f -> liste vide
- L[0,8]=L

- Et L[-3,-1] = [2,3]

- L[:4] = L[0:4]

- L[4:] = L[4:len(L)]

Chaine de Caractère “string”

Syntaxe: entre “———“ ou ‘———‘

A. Manipulation

- Concaténation : “Bonjour” + “Au revoir” = “Bonjour Au revoir”

- Longueur: len(“Bonjour”) = 7, len(“Au revoir”) = 9

- Accès: c = “Bonjour”, c[2] = ’n’

B. Caractère ASCII

- 128 caractères: Majuscule, minuscule, chi re, espace, symbole

- Pas de lettre accentuées


- Ces caractères sont codés par les entiers entre 0 et 127 (sur 7 bits)
C. Méthodes

- “Un beau soleil”.split(“ “) -> [“Un”, “beau”, “soleil”]

- “ “.join([“Un”, “beau”, “soleil”]) -> “Un beau soleil”

D. Caractères particuliers

- “\”Oui\”, j’aime” -> le \ signi e que après lui, c’est un caractère.

1
fi
fi
fi
fi
ff
ff
- Chaîne de caractère sur plusieurs lignes: “””——————-“””

Def presenta(s)

Return a in s

Def present(c,s)

Return c in s

Def voyelles(s)

L[“A”,”E”,”I”,”O”,”U”,”Y”,”a”,”e”,”I”,”o”,”u”,”y”]

Counter = 0

For i in L:

if i in s:

counter +=1

Return counter == 12

Une chaine de caractère est immuable

Dictionnaires

Dé nition: c’est une structure de donnée qui contient des couples (clé, valeur)

Valeurs: tous (mais raisonnables)

Ni les clés ni les valeurs ne sont homogènes

Exemple: on peut avoir les couples suivants:

Entier Liste (1,True) (“Janvier”,”galette”) (“Février”,”crepes”). ((2,5),[3,4])

Flottant Dictionnaire Syntaxe:


Entre accolades

Booléen Liste de liste Éléments séparés par des virgules

Couples clé, valeur -> clé:valeur

Chaine de
caractère Dictionnaire vide: nom={ }

Couple/Tuple

Immuable Modi able Opération:

Longueur: nombre de couples=nombre de clés len(…),


complexité: O(1) (constant)

Les clés dans un dictionnaire sont uniques.

Existence d’une clé: k in dico.keys() -> booléen. Complexité O(1)

Valeur associé à une clé: dico[k]. Complexité O(1)

Modi er la valeur associé à la clé k: dico[k] = v. Complexité O(1)

Création d’un dictionnaire: {} ou ajout clés un à un. Complexité O(n)

(+) Toutes les opérations (sauf la création) sont en O(1)

2
fi
fi
fi
Piles et Files

A. Piles

La pile est une structure de données abstraite qui permet de stocker des éléments suivants le
principe de “Last In First Out” (LIFO)

6 Sommet

Opérations:

• Créer une pile vide

• Tester si la pile est vide

• Nombre d’élément dans la pile

• Ajouter un éléments au sommet de la pile

• Récupérer le sommet et le supprimer (si elle est non vide)

B. Files

Structure de données abstraites qui permet de stocker des éléments sur le principe “First In First
Out” (FIFO), elle peut modéliser une le d’attente.

Opérations :

• Créer une le vide

• Tester si la le est vide

• Nombre d’éléments dans la le

• Ajouter un élément en queue de le

• Récupérer la tête

• Supprimer la tête

On peut implémenter une le avec un liste à l’aide d’append et de pop. Problème: pop nécessite
de décaler tous les éléments, O(n) où n = len(L).

C. Module deque

Disponible dans le module collections, c’est une le à deux bouts “double ended queue”.

Les ajouts et suppressions en n et début sont en temps constant.

Opérations:

• Création d’une le à deux bouts:

From collections import deque


double_ le = deque( )
• Accéder à la longueur

Len(double_ le)
• Ajouter à droite avec append

For i in range(5):
double_ le.append(i)
3
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
fi
double_ le
deque(0,1,2,3,4)
• Ajout à gauche avec appendleft
• Suppression à droite avec pop
• Suppression à gauche avec popleft.

4
fi

Vous aimerez peut-être aussi