0% ont trouvé ce document utile (0 vote)
20 vues23 pages

Listes en Python : Création et Utilisation

Infoo mly

Transféré par

lebchenamya
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues23 pages

Listes en Python : Création et Utilisation

Infoo mly

Transféré par

lebchenamya
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Structures de données en Python

Les listes

CPGE Moulay Youssef


Rabat

MPSI

2024 / 2025

0 / 22
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Plan

1 Introduction

2 Définition et Création d’une liste

3 Accès aux valeurs d’une liste

4 Tranchage (slicing)

5 Création d’une copie d’une liste

6 Autres opérations

1 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Introduction

Les variables, telles que nous les avons vues, ne permettent de stocker qu’une seule
donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des
variables distinctes seraient beaucoup trop lourdes à gérer.
Heureusement, Python proposent des structures de données permettant de stocker
l’ensemble de ces données dans une variable commune. Ainsi, pour accéder à ces valeurs
il suffit de parcourir la variable en utilisant les indices.

2 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Définition et Création d’une liste

Définition 1
Une liste est une structure de données qui permet de stocker plusieurs valeurs mais de type
hétérogène, simple où composé.

On peut construire une liste sous Python de plusieurs manières :

Par la donnée explicite des éléments, entre crochets, séparés par des virgules :

1 L =[] # cration d ' une liste vide


2

3 L =[1 ,25 ,30] # creation d ' une liste des entiers


4

5 L =[ ' Ahmed ' ,20 , True ,[12.75 ,0]] # creation d ' une liste heterogene

3 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Par concaténation de listes ( à l’aide de +) :

1 L =[10 , 12 , 33] + [14 , 52 , 42 , 56]


2 print ( " L = " ,L )
L = [10 , 12 , 33 , 14 , 52 , 42 , 56]

A partir d’un itérable en utilisant le mot clé list :

1 L = list ( ' bonjour ')


2 print ( " L = " ,L )
L = [’b’, ’o’, ’n’, ’j’, ’o’, ’u’, ’r’]

1 L = list ( range (10) )


2 print ( " L = " ,L )
L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
4 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Par compréhension :

syntaxe :

1 L =[ f ( x ) for x in iterable if condition ]


Où f(x) est une fonction dépendant ou pas de x, iterable est une séquence qu’on peut
itérer, et l’instruction ’if condition’ est optionnelle.
Exemple :
1 L =[ i for i in range (10 ,0 , -1) ]
2 print ( " L = " ,L )
L = [10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1]
1 L =[ i **2 for i in range (10) if i %3==0]
2 print ( " L = " ,L )
L = [0 , 9 , 36 , 81]
5 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Exercice 1 :
Écrire une fonction liste_aléatoire(n) qui reçoit en paramètre un entier n et qui de
retourne une liste contenant n entiers générés aléatoirement et compris entre 0 et 20.

1 # solution 1
2 import random
3 def liste_alea ( n ) :
4 L =[]
5 for i in range ( n ) :
6 L = L +[ random . randint (0 ,20) ]
7 return L
8

9 # solution 2
10 import random
11 def liste_alea ( n ) :
12 return [ random . randint (0 ,20) for i in range ( n ) ]
6 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Exercice 2 :
Ecrire une fonction diviseurs(n) qui reçoit en paramètre un entier n et qui de retourne une
liste de ses diviseurs.

1 # solution 1
2 def diviseurs ( n ) :
3 L =[]
4 for i in range (1 , n +1) :
5 if n % i ==0:
6 L = L +[ i ]
7 return L
8

9 # solution 2
10 def diviseurs ( n ) :
11 return [ i for i in range (1 , n +1) if n % i ==0]
7 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Accès aux valeurs d’une liste


On peut accéder aux valeurs de la liste en indiquant l’indice ou les indices entre crochets
qui peuvent être positifs ou bien négatifs :
Par exemple, considérons la liste suivante :
1 m =[ ' MATH ' , ' PHY ' , ' SI ' , ' INFO ' , ' FR ' , ' EN ' , ' TRA ' , ' SPO ']

1 print ( m )
[’MATH’ , ’PHY’ , ’SI’ , ’INFO’ , ’FR’ , ’EN’ , ’TRA’ , ’SPO’]
1 print ( m [1])
PHY
1 print ( m [10])
IndexError : list index out of range
1 m [ -1]
SPO 8 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Tranchage (slicing)
On peut créer une nouvelle liste en extrayant certains éléments d’une liste. Pour extraire
les éléments d’indice entre d inclus et f exclus avec un pas p, on utilise L[d :f :p]
Par exemple :
1 L =[0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9]

1 print ( L [1: 7: 3])


[1, 4]
1 print ( L [1: 7: -1])
[]
1 print ( L [7: 1: -1])
[7, 6, 5, 4, 3, 2]
9 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Création d’une copie d’une liste


L’affectation n’est pas suffisante pour créer une copie d’une liste. Voici ce qui se passe,
lorsqu’on utilise une affectation simple :
1 T =[1 ,5 ,17]
2 L=T
1 L [0]=20
2 print ( 'L = ' ,L )
3 print ( 'T = ' ,T )
L = [20 , 5 , 17]
T = [20 , 5 , 17]

10 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Donc pour créer une copie d’un liste unidimensionnelle, on utilise la méthode copy
1 T =[1 ,5 ,17]
2 L = T . copy ()
3 L [0]=20
4 print ( 'L = ' ,L )
5 print ( 'T = ' ,T )
L = [20 , 5 , 17]
T = [1 , 5 , 17]

11 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Attention, si la liste est multidimensionnelle, la méthode copy ne va pas marcher. Voyons


ce qui se passera dans cet exemple.
1 T =[[1 ,3] ,[6 ,9]]

12 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Attention, si la liste est multidimensionnelle, la méthode copy ne va pas marcher. Voyons


ce qui se passera dans cet exemple.
1 T =[[1 ,3] ,[6 ,9]]
2 L = T . copy ()

13 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

1 T =[[1 ,3] ,[6 ,9]]


2 L = T . copy ()
3 L [1][0]=20
4 print ( 'L = ' ,L )
5 print ( 'T = ' ,T )
6 # L = [[1 , 3] , [20 , 9]]
7 # T = [[1 , 3] , [20 , 9]]

14 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Comme solution donc, on va réaliser un copie profonde à l’aide de la méthode deepcopy


du module copy
1 from copy import deepcopy
2 T =[[1 ,3] ,[6 ,9]]

15 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Comme solution donc, on va réaliser un copie profonde à l’aide de la méthode deepcopy


du module copy
1 from copy import deepcopy
2 T =[[1 ,3] ,[6 ,9]]
3 L = deepcopy ( T )

16 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Comme solution donc, on va réaliser un copie profonde à l’aide de la méthode deepcopy


du module copy
1 from copy import deepcopy
2 T =[[1 ,3] ,[6 ,9]]
3 L = deepcopy ( T )
4 L [0][1]=20
5 print ( 'L = ' ,L )
6 print ( 'T = ' ,T )
7 # L = [[1 , 20] , [6 , 9]]
8 # T = [[1 , 3] , [6 , 9]]

17 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Autres opérations
Soit L1 et L2 deux listes tels que :
1 L1 =[0 , 1 , 2 , 3 , 4]
2 L2 =[ 5 , 6 , 7 , 8 , 9]

Concaténation de deux listes :

1 L = L1 + L2
2 print ( " L = " ,L )
L= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Répétition d’une liste :

1 L = L1 *2
2 print ( " L = " ,L )
L= [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
18 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Taille d’une liste :

1 n = len ( L1 )
2 print ( " la taille de L1 est " ,n )
la taille de L1 est 5
Test d’appartenance :

1 print (3 in L1 )
True
Test de non appartenance :

1 print (3 not in L1 )
False

19 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

1 L1 =[0 , 1 , 2 , 3 , 4]
Parcourir les éléments d’une liste :
1 for elt in L1 :
2 print ( elt , end = ' ')
0 1 2 3 4
1 for i in range ( len ( L1 ) ) :
2 print ( L1 [ i ] , end = ' ')
0 1 2 3 4
Maximum et Minimum d’une liste :
1 print ( ' le maximum de L1 est ' , max ( L1 ) )
2 print ( ' le minimum de L1 est ' , min ( L1 ) )
le maximum de L1 est 4
le minimum de L1 est 0 20 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Le tableau ci-dessous présente d’autres méthodes de manipulations des listes sous


Python :

21 / 22

Les listes
Introduction Définition et Création d’une liste Accès aux valeurs d’une liste Tranchage (slicing) Création d’une copie d’une liste Autres opérations

Exercice d’application
En utilisant les méthodes décrites dans le tableau précédent :
1 Créer une liste vide L.
2 Ajouter les éléments suivants à la fin de la liste : 12, 5, 6, 10.
3 Ajouter à la liste L les éléments de la liste T = [0, 2, 3, 10].
4 Insérer l’élément 7 dans la position 2.
5 Supprimer l’élément 10.
6 Supprimer le dernier élément.
7 Supprimer l’élément se trouvant à l’indice 3.
8 Trouver l’indice de l’élément 5.
9 Compter le nombre d’occurrence de 10.
10 Trier la liste L.
11 Inverser l’ordre de la liste L.
22 / 22

Les listes

Vous aimerez peut-être aussi