Bac à sable Chaînes et listes Fonctions Numpy Piles Récursivité Tris

Chaînes et listes


Sauvegardes

Il est impératif de sauvegarder régulièrement le code en le collant dans un fichier texte (Notepad++) ou dans l'éditeur de pyzo.

Syntaxe

Chaînes et listes sont des séquences en python : des collections d'objets dans un ordre précis.
Il existe une différence importante entre les chaînes et les listes : il n'est pas possible de modifier un caractère d'une chaîne tandis qu'il est fréquent de modifier un élément d'une liste. On dit qu'une liste est mutable et qu'une chaîne est immutable.

Chaîne s Liste L
Séquence vide s = '' L =[]
Longueur len(s) len(L)
Définition par extension s = 'abcd' L = [3, True, 'b', -1]
Définition par compréhension Utiliser une boucle L = [i**2 for i in range(10)]
Accès à l'élément d'index (ou indice) i
ATTENTION : la numérotation commence à 0
s[i] L[i]
Ajout en fin de séquence s = s + 'efgh' ou s += 'efgh' L = L + ['z', 3.14, 0] ou L += ['z', 3.14, 0]
ou L.append(-47) (un seul élément ; opération rapide)
Ajout en début de séquence s = 'zyx' + s L = [5, False] + L
Remplacement d'un élément IMPOSSIBLE L[i] = 99
Slicing
d = index de début,
f = index de fin (exclu),
p = pas (facultatif)
s[d:f:p]
s[d:]
s[:f]
s[::p]
L[d:f:p]
L[d:]
L[:f]
s[::p]

Exercices sur les listes

Exercice 1 - Définition par compréhension

Construire par compréhension les listes suivantes :
- la liste L1 des entiers de 0 à 100 ;
- la liste L2 des cubes des entiers de 0 à 100 (inclus) ;
- la liste L3 des cubes des entiers de 0 à 100 (inclus) seulement si le résultat est pair (il est possible d'ajouter un test dans la définition par compréhension : [... for ... if ...]).

Les cellules de code se comportent comme un éditeur python et non comme le shell : utiliser l'instruction print() pour visualiser les résultats.



Exercice 2 - Slicing (extraction de sous-listes)

A partir de la liste L1 précédente, extraire les sous-listes suivantes.
- L1a et L1b constituées respectivement des entiers de 0 à 50 et des entiers de 51 à 100.
- Quel est le résultat de L1 == L1a + L1b ?
- L1p et L1i constituées respectivement des nombres pairs et impairs de L1.
- Quel est le résultat de L1 == L1p + L1i ? Expliquer.
- L1_5 constituée des multiples de 5 dans L1.
- L1_3070 constituée de tous les entiers n tels que \(30 \leq n \leq 70\).
- L1_3070_5 constituée de tous les entiers n multiples de 5 tels que \(30 \leq n \leq 70\).



Exercices sur les chaînes

Exercice 3 - Définition par compréhension

A chaque caractère c est associé un entier : la fonction ord(c) donne cet entier.
Réciproquement, la fonction chr(n) permet de connaître le caractère associé à un entier n.

1/ Construire par compréhension les chaînes sm et sM constituées respectivement des lettres minuscules et des lettres majuscules (non accentuées).

2/ Construire la chaîne smM de la forme : 'aAbB...zZ'.

3/ Construire par extension la chaîne sv des voyelles non accentuées.
A l'aide de sv et sm, construire par compréhension la liste sc des consonnes (minuscules).



Exercice 4 - Slicing (extraction de sous-chaînes)

1/ Reconstituer les chaînes sm et sM (en leur donnant d'autres noms) à partir de smM.