Chapitre-3 Python
Chapitre-3 Python
Chapitre-3 Python
Plan du cours
Chapitre 1 : Eléments de base du langage Python
2
Collections d’objets en Python
Chapitre 3
Tuples, Listes, Chaines, Dictionnaires et Ensembles
3
Chapitre 3
1- Tuple (type tuple)
6- Exercices
4
1- Tuple (type tuple)
1-1 Définition et caractéristiques
Tableau statique en lecture seule d’objets hétérogènes
Un tuple est constitué d'un certain nombre de valeurs séparées par des virgules. (les
éléments peuvent être entre () ou non)
Taille et contenu fixes
Impossible de modification: objet non mutable (immutable)
Structure complexe (tuple de tuples et autres)
>>> fruits = ("apple", "orange", "tomato", "banana")
>>> print(type(fruits)) <class 'tuple'>
>>> print(fruits) ('apple', 'orange', 'tomato', 'banana')
>>> fruits = "apple", "orange", "tomato", "banana"
>>> print(type(fruits))
<class 'tuple'>
>>> print(fruits)
('apple', 'orange', 'tomato', 'banana') 5
1- Tuple (type tuple)
1-2 Création d’un tuple et accès aux données
#définition d'un tuple
>>> t1 = (2,6,8,10,15,26)
>>> print(t1)
(2, 6, 8, 10, 15, 26)
#taille du tuple
>>> print(len(t1))
6
#accès indicé
>>> a = t1[0] (1er élément, les indices vont de 0 à len(t1)-1)
>>> print(a)
2
>>> print(type(a)) (a n’est pas un tuple)
<class 'int'> 6
1- Tuple (type tuple)
1-2 Création d’un tuple et accès aux données
#modification d’un tuple ?
>>> t1[2] = 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment (Erreur)
#plage d’indices
>>> b = t1[2:5]
>>> print(b)
(8, 10, 15)
#autre plage
>>> c = t1[:4] Les 4 premiers éléments c.-à-d. les indices 0, 1, 2, 3
>>> print(c)
(2, 6, 8, 10) 7
1- Tuple (type tuple)
1-2 Création d’un tuple et accès aux données
#indiçage négatif
>>> d = t1[-1] accéder au dernier élément du tuple
>>> print(d)
26
#indiçage négatif
>>> e = t1[-3:] les trois derniers éléments
>>> print(e)
(10, 15, 26)
8
1- Tuple (type tuple)
1-3 Autres opérations sur les tuples
17
2- Liste (type list)
2-4 Listes en intension (List Comprehensions)
Objectif : un mécanisme simple (et concis) pour générer une liste à
partir d’une autre liste.
Exemple 1 : Mettre tous les chiffres au carré
source = [1,5,8,12,7] source = [1,5,8,12,7]
resultat = [] resultat = [v**2 for v in source]
for v in source: print(resultat)
resultat.append(v**2)
print(resultat) Cette écriture facilite la tâche !
#L3
>>> L3 = [61,92,17]
>>> print(L3)
[61, 92, 17]
#copie des valeurs
>>> L4 = L3.copy() L4 référence une nouvelle zone mémoire,
>>> print(L4) et les données de L3 y sont recopiées
[61, 92, 17]
>>> L4[1] = 55
>>> print(L4)
[61, 55, 17]
>>> print(L3)
[61, 92, 17] L3 n’est pas modifiée 20
2- Liste (type list)
2-6 Exemples
Evaluer directement les listes suivantes :
>>> [ 1 for k in range(4) ]
[1, 1, 1, 1]
>>> [ 0 for k in range (2) ]
[0, 0]
>>> [ h.upper( ) for h in ['n','s','i'] ]
['N', 'S', 'I']
>>> [ ord(z) for z in ['a','b','c'] ]
[97, 98, 99]
>>> ['mot' + str(k) for k in range(1)]
['mot0']
21
3- Chaîne de caractères
3-1 Opérations
Une chaîne de caractères est une liste particulière avec des méthodes
associées
#définir une chaîne
>>> s1 = "bonjour le monde"
>>> print(s1) bonjour le monde
#longueur
>>> long = len(s1)
>>> print(long) 16
#accès indicé
>>> s2 = s1[:7]
>>> print(s2) bonjour
22
3- Chaîne de caractères
3-1 Opérations
#non modifiable
>>> s1[0] = "B" Erreur: Une chaîne n’est pas modifiable
solution 1: convertir la chaine en une liste
>>> s1 = "bonjour le monde"
>>> s1 = list(s1)
>>> s1[0] = "B"
>>> ''.join(s1) 'Bonjour le monde'
solution 2: utiliser la concaténation
>>> s1 = "bonjour le monde"
>>> s1 = "B" + s1[1:]
>>> s1 'Bonjour le monde'
23
3- Chaîne de caractères
3-1 Opérations
Une chaîne peut être transformée en liste pour réaliser des traitements
sophistiqués. L’outil est très souple.
#transformation en liste
>>> S = "Bonjour le monde"
>>> liste = list(S) (Toutes les opérations sur les listes sont possibles après)
>>> print(liste) ['B', 'o', 'n', 'j', 'o', 'u', 'r', ' ', 'l', 'e', ' ', 'm', 'o', 'n', 'd', 'e']
#découpage par séparateur
>>> S = "Bonjour le monde"
>>> decoupe = S.split(" ") (Le séparateur peut être tout autre caractère)
>>> print(decoupe) ['Bonjour', 'le', 'monde']
#former une chaîne à partir d’une liste
>>> SB = "".join(liste)
>>> SB 'Bonjour le monde' 24
4- Dictionnaire (type dict)
4-1 Définition et caractéristiques
25
4- Dictionnaire (type dict)
4-2 Opérations sur les dictionnaires
#définition d'un dictionnaire
>>> d1 = {'Pierre':17, 'Paul':15,'Jacques':16}
>>> print(d1)
{'Pierre': 17, 'Paul': 15, 'Jacques': 16}
>>> print(type(d1))
<class 'dict'>
ou
>>> print(d1.items())
dict_items([('Pierre', 17), ('Paul', 15), ('Jacques', 16)])
#nombre d'élements
>>> print(len(d1))
3
26
4- Dictionnaire (type dict)
4-2 Opérations sur les dictionnaires
#liste des clés
>>> print(d1.keys()) dict_keys(['Pierre', 'Paul', 'Jacques'])
#liste des valeurs
>>> print(d1.values()) dict_values([17, 15, 16])
#accès à une valeur par clé
>>> print(d1['Paul']) 15 ou
>>> print(d1.get('Paul')) 15
#si clé n'existe pas
>>> print(d1['Pipa']) Erreur
Remarques:
d1.clear() vide le dictionnaire
d1 est une référence, d1.copy() permet de copier le contenu. 27
4- Dictionnaire (type dict)
4-2 Opérations sur les dictionnaires
#modification
>>> d1['Jacques'] = 18
>>> print(d1) {'Pierre': 17, 'Paul': 15, 'Jacques': 18}
#ajouter un élément
>>> d1['Henri'] = 22
>>> print(d1) {'Pierre': 17, 'Paul': 15, 'Jacques': 18, 'Henri': 22}
#ajout d'un bloc d’éléments
>>> d1.update({'Monica':36,'Bill':49})
>>> print(d1)
{'Pierre': 17, 'Paul': 15, 'Jacques': 18, 'Henri': 22, 'Monica': 36, 'Bill': 49}
28
4- Dictionnaire (type dict)
4-2 Opérations sur les dictionnaires
#verifier la présence d’une clé
>>> test = 'Pierre' in d1
>>> print(test)
True
#suppression par clé
>>> del d1['Monica']
>>> print(d1)
{'Pierre': 17, 'Paul': 15, 'Jacques': 18, 'Henri': 22, 'Bill': 49}
29
4- Dictionnaire (type dict)
4-2 Opérations sur les dictionnaires
Remarque: Les clés ne sont pas forcément des chaînes de caractères.
#autre type de clé
>>> d2 =
{('Pierre',56):['Directeur',1253,True],('Paul',55):['Employé',100,False]}
>>> print(d2.keys())
dict_keys([('Pierre', 56), ('Paul', 55)])
>>> print(d2.values())
dict_values([['Directeur', 1253, True], ['Employé', 100, False]])
Dans cet exemple :
• clé est un tuple
• valeur est une liste. D’autres types sont possibles
30
5- Ensemble (type set)
5-1 Définition et caractéristiques
Une collection non ordonnée, sans éléments en double.
Permet:
test d'appartenance
élimination des entrées dupliquées
Opérations sur les ensembles : union, intersection, différence et
différence symétrique.
Fonctionnalité similaire aux listes
Ne peut pas être indexé ou tranché
Peut être créé avec {} ou vous pouvez convertir une liste en un
ensemble
31
5- Ensemble (type set)
5-2 Création d’un ensemble
#création d’un ensemble à partir d’une liste
>>> x = set([1, 2, 3])
>>> print(x)
{1, 2, 3}
>>> print(type(x))
<class 'set'>
ou directement
>>> x = {1, 2, 3}
32
6- Exercices
33
6- Exercices
34
6- Exercices
35
6- Exercices
36