LES LISTES

_images/python0601.png

Note

Sous Python, on peut définir une liste comme une collection d’éléments séparés par des virgules, l’ensemble étant enfermé dans des crochets Les éléments individuels qui constituent une liste peuvent être de type varié. Les objets placés dans une liste sont rendus accessibles par l’intermédiaire d’un “index” (un nombre qui indique l’emplacement de l’objet dans la séquence. Il est possible de changer les éléments individuels d’une liste. La fonction “len” s’applique aux listes. est possible de supprimer d’une liste un élément à partir de son index à l’aide de la fonction del() . Il est possible d’ajouter un élément à une liste à l’aide de append().

Définition d’une liste :

On délimite une liste à l’aide de crochets on lui donne un nom :

index
_images/python0602.png

Commande

Effet

lst=[a,[t,v…],..]

Création d’une liste avec des éléments choisis par le programmeur.

lst=[]

Création d’une liste vide

lst=5*[0]

Création d’une liste qui peut contenir 5 entiers.

lst=n*[0]

Création d’une liste qui peut contenir n entiers.

lst=n*[""]

Création d’une liste qui peut contenir n chaînes de caractères

_images/python0603.png

index

0

1

2

3

4

mots
"droite"
"vert"
"gauche"
"haut"
"bas"
lst = ["droite","vert", "gauche", "haut", "bas"]
len(lst) #est égal à  5 , et l’index de la listemots va de 0 à 4.

Commande

Effet

mots=[index]

Si index=1 alors mots[index] renvoie le deuxième élément de la liste : « gauche »

lst=[]

Création d’une liste vide

lst=mots
lst=["droite","gauche","haut","bas"]
lst.append("vert")

Insère « vert » à la fin de la liste.

lst =['droite','vert','gauche','haut','bas','vert']
lst+bref
lst.extend(bref)

Insère la liste bref à la fin de la liste lst

lst.insert(1, "vert")

Insère « vert » au niveau de l’index 1 de la liste.

lst.append(1,"vert")
lst= ['droite','vert','gauche','haut','bas','vert']
"vert" in lst

Renvoie True si « vert » appartient à lst ou False s’il n’appartient pas. Le mot vert est dans la liste

lst.remove("vert")

Supprime la première position du terme « vert » lst.remove(« vert »)

lst=['droite','gauche','haut','bas','vert']
del lst[0]
del lst[i :j]

Supprime le premier élément de la liste Supprime de la liste l’élément i jusqu’à l’élément j-1

_images/python0604.png

Commandes
remove()

: recherche une valeur (si plusieurs éléments de la liste possèdent la même valeur, seul le premier est effacé).

del()

: travaille avec un index ou une tranche d’index,

programme

Résultat

lst.append(1,"vert")
lst= ['droite', 'vert', 'gauche', 'haut', 'bas', 'vert']

Le mot vert est dans la liste

lst = [17, 38, 10, 25, 72]
del lst[2]
print(lst)

 .. code-block:: python

[17, 38, 25, 72]
del lst [1:3]
print(lst)
[17, 72]

Fonctions et méthodes sur les listes :

Ce sont des fonctions qui prennent des listes en paramètres :

lst=[0,5,4,78,45,26,30,21,,47]
ch="Alice et Bob"


Méthode

Effet

premiers.sort()

Trier la liste

premiers=[11,13,23,31,43]
premiers.reverse()

inverser l’ordre des éléments.

premiers=[43,31,23,13,11]
premiers.index(23)

Retrouver l’index d’un élément 2

_images/python0605.png

programme

Résultat

#0310 fonctions listes.py
from random import*
lst=[0,5,4,78,45,26,30,21,47]
lstchar=["al","de","sir","at"]
ch="Alice et Bob"
print("lst=",lst)
print("min(lst) : ", min(lst))
print("mnax(lst) : ", max(lst))
print("choice(lst) : ", choice(lst))
print("ch= ",ch)
chr=ch.split(" ")
print('sep=" "  : ')
print('ch.split(" ") : ',ch.split(" "))
sep="*-*"
print('sep= ',sep)
print("sep.join(lstchar) :",sep.join(lstchar))
print("lstchar= ",lstchar)
liste=list(ch)
print("list(ch) : ", liste)
lst= [0, 5, 4, 78, 45, 26, 30, 21, 47]
min(lst) :  0
mnax(lst) :  78
choice(lst) :  4
ch=  Alice et Bob
sep=" "  :
ch.split(" ") :  ['Alice', 'et', 'Bob']
sep=  *-*
sep.join(lstchar) : al*-*de*-*sir*-*at
lstchar=  ['al', 'de', 'sir', 'at']
list(ch) :  ['A', 'l', 'i', 'c', 'e', ' ', 'e', 't', ' ', 'B', 'o', 'b']
#0312 enumerate liste.py
ch="Alice et Bob"
liste=list(ch)
for index in enumerate(liste):
    print(index)
(0, 'A')
(1, 'l')
(2, 'i')
(3, 'c')
(4, 'e')
(5, ' ')
(6, 'e')
(7, 't')
(8, ' ')
(9, 'B')
(10, 'o')
(11, 'b')

enumerate() # prend en paramètre une liste et renvoie deux valeurs par éléments : l’indice et l’élément.
(0, 'A')    ;    (1, 'l')    ;     (2, 'i')    ;    (3, 'c')     ;    (4, 'e')    ;    (5, ' ')
(7, 't')    ; `(8, ' ')     ;     (9, 'B')    ;    (10, 'o')    ;    (11, 'b')    ;    (6, 'e')

CREATION D’UNE LISTE :

Création d’une liste de nombres à l’aide de la fonction range( ).

Listes

range(n) : (n un entier naturel) renvoie un itérateur qui parcours les nombres entiers naturels tels que . list(range(8))= [0, 1, 2, 3, 4, 5, 6, 7] range(p,n) : renvoie un itérateur qui parcours les nombres entiers naturels tels que . list(range(5,12)) donne comme résultat : [5, 6, 7, 8, 9, 10, 11] list(range(n,p,k) : renvoie un itérateur qui parcours les nombres entiers naturels i tels que et list(range(3,16,3)) donne comme résultat : [3, 6, 9, 12, 15] On peut utiliser des entiers négatifs. list(range(3,-7,-1)) donne comme résultat : [3,2,1,0,-1,-2,-3,-4,-5,-6] list(range(-7,3,1)) donne comme résultat : [-7,-6,-5-4,-3,-2,-1,0,1,2] Pour utiliser l’instruction for avec la fonction range( ), on procède de la façon suivante :

for i in range(N):
{indentation}Bloc d’instructions

Remarque :

L’habitude a été prise de nommer les entiers utilisés par for i, j, ou k.

programme

Résultat

# 0312 liste de mots.py
# listes                          
#for, in,  print, sequence     
#sequence est une liste
sequence= [ " lundi "," mardi "," mercredi "," jeudi ", \
 " vendredi "," samedi "," dimanche"]
print(" liste sequence :")
print(sequence)
for lettre in sequence:
   print(lettre)
   print("-*-*-*-*-*")
liste sequence :
[' lundi ', ' mardi ', ' mercredi ', ' jeudi ', ' vendredi ', ' samedi ', ' dimanche']
 lundi
-*-*-*-*-*
 mardi
-*-*-*-*-*
 mercredi
-*-*-*-*-*
 jeudi
-*-*-*-*-*
 vendredi
-*-*-*-*-*
 samedi
-*-*-*-*-*
 dimanche
-*-*-*-*-*

programme

Résultat

#0320méthodes listes
entiers=list(range(-5,6))
print("entiers")
print(entiers)
reels=[]
for i in range(len(entiers)):
    reels.append(entiers[i])
socle=sorted(reels,reverse=False)
print("Dans le même sens")
print(socle)
print("Sens inversé")
socle1=sorted(reels,reverse=True)
print(socle1)
entiers
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
Dans le même sens
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
Sens inversé
[5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5]

programme

Résultat

#reverse liste
a=[1,2,3,4,5]
b=['a','b','c']
c=[]
c.append(a[4])
b[0]= a
a.reverse()
print('b',b)
print('a',a)
print('c',c)
b [[5, 4, 3, 2, 1], 'b', 'c']
a [5, 4, 3, 2, 1]
c [5]
educationdunumerique.fr. Tous  droits réservés. D Pérarnaud Limoges.