Vous êtes sur la page 1sur 18

Algorithmique et

Programmation
-Partie 2-
Niveau : 1ère année FCF
Présenté par :
Pr. Safae Berrichi & Naoual Nassiri

S.Berrichi@ump.ac.ma
N.Nassiri@ump.ac.ma
Année universitaire 2021-2022
PLAN

Collection d'objets sous Python


➢ Création des tuples listes et dictionnaires.
➢ Indices et plages d'indices.
➢ Digressions sur les chaînes de caractères.

Pr. Safae Berrichi & Naoual Nassiri 2


Langage python

Collection d'objets sous Python

a. Liste
a. Définition
• Une liste est une structure de données qui contient une série de valeurs. Python autorise
la construction de liste contenant des valeurs de types différents (par exemple entier et
chaîne de caractères), ce qui leur confère une grande flexibilité.
b. Syntaxe
• Une liste est déclarée par une série de valeurs séparées par des virgules, et le tout
encadré par des crochets
c. Exemples
– animaux = ['girafe', 'tigre', 'singe', 'souris']
– tailles = [5, 2.5 , 1.75 , 0.15]
– mixte = ['girafe', 5, 'souris', 0.15]

Pr. Safae Berrichi & Naoual Nassiri 3


Langage python

Collection d'objets sous Python

a. Liste
d. Utilisation
• Un des grand avantages d’une liste est que vous pouvez appeler ses éléments par leur
position. Ce numéro est appelé indice (ou index) de la liste.
– liste : ['girafe ', 'tigre ', 'singe ', 'souris ']
– indices : 0 1 2 3
NB. Le premier element de la liste commence par l’indice 0 et le dernier se posionne à l’indice
n-1 ( ou n est la taille de la liste)
e. Opération sur les listes
– Tout comme les chaînes de caractères, les listes supportent l’opérateur + de
concaténation, ainsi que l’opérateur * pour la duplication :
– char1 = [‘a', ‘b']
– char2 = [‘c', ‘d ']
– char1 + char2
– [‘a ', ‘b', ‘c', ‘d ']
– char1 * 3
– [‘a', ‘b’, ‘a', ‘b’, ‘a', ‘b] Pr. Safae Berrichi & Naoual Nassiri 4
Langage python

Collection d'objets sous Python

a. Liste
f. Opération sur les listes
• L’opérateur + est très pratique pour concaténer deux listes.
• On peut aussi utiliser la méthode liste.append() lorsqu’on souhaite ajouter un seul
élément à la fin d’une liste.
– >>> a = [15 , -5]
– >>> a. append (13)
– >>> a
– >>>[15 , -5, 13]
g. Indiçage négatif
• La liste peut également être indexée avec des nombres négatifs selon le modèle
suivant :
– liste : [‘FCF', ‘python', ‘algorithmique’]
– indice positif : 0 1 2
– indice négatif : -3 -2 -1
Pr. Safae Berrichi & Naoual Nassiri 5
Langage python

Collection d'objets sous Python

a. Liste
g. Indiçage négatif
• Les indices négatifs reviennent à compter à partir de la fin. Leur principal avantage est
qu’on peut accéder au dernier élément d’une liste à l’aide de l’indice -1.
h. Tranches
• Un autre avantage des listes est la possibilité de sélectionner une partie d’une liste en
utilisant un indiçage construit sur le modèle [m:n+1] pour récupérer tous les éléments,
du émième au énième (de l’élément m inclus à l’élément n+1 exclu). On dit alors qu’on
récupère une tranche de la liste, par exemple :
– >>> matieres= [‘info', ‘python', ‘algo', ‘statistique']
– >>> matieres[0:2]
– >>> matieres[0:3]
– >>> matieres[0:]
– >>> matieres[:]
– >>> matieres[1:]
– >>> matieres[1: -1] Pr. Safae Berrichi & Naoual Nassiri 6
Langage python

Collection d'objets sous Python

a. Liste
h. Tranches
• Notez que lorsqu’aucun indice n’est indiqué à gauche ou à droite du symbole
deux-points, Python prend par défaut tous les éléments depuis le début ou tous les
éléments jusqu’à la fin respectivement.
• On peut aussi préciser le pas en ajoutant un symbole deux-points supplémentaire et en
indiquant le pas par un entier.
– >>>matieres= [‘info', ‘python', ‘algo', ‘statistique']
– >>> matieres[0:3:2]
– >>> x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
– >>> x [::1]
– >>> x[0:3:2]
– >>> x [::2]

Pr. Safae Berrichi & Naoual Nassiri 7


Langage python

Collection d'objets sous Python

a. Liste
i. Fonction len()
• L’instruction len() vous permet de connaître la longueur d’une liste, c’est-à-dire le
nombre d’éléments que contient la liste.
• Voici un exemple d’utilisation :
– >>> matieres= [‘info', ‘python', ‘algo', ‘statistique']
– >>> len (matieres)
– >>> len ([1 , 2, 3, 4, 5, 6, 7, 8])
j. Les fonctions range() et list()
• L’instruction range() est une fonction spéciale en Python qui génère des nombres entiers
compris dans un intervalle.
• Lorsqu’elle est utilisée en combinaison avec la fonction list(), on obtient une liste
d’entiers. Par exemple :
– >>> list(range (10))
– >>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Pr. Safae Berrichi & Naoual Nassiri 8
Langage python

Collection d'objets sous Python

a. Liste
k. Copie d’une liste
• Si a est une liste, la commande b=a ne crée pas un nouvel objet b mais simplement une
référence (pointeur) vers a. Ainsi, tout changement effectué sur b sera répercuté sur a
aussi ! Pour créer une copie c de la liste a qui soit vraiment indépendante on utilisera la
commande deepcopy du module copy comme dans l’exemple 3 suivant :

Pr. Safae Berrichi & Naoual Nassiri 9


Langage python

Collection d'objets sous Python

a. Liste
l. Opérations disponibles sur les listes
min(liste) Plus petit élément d’une liste, résultats difficile à prévoir lorsque les
types des éléments sont différents
max(liste) Plus grand élément d’une liste
sum(liste) Retourne la somme de tous les éléments
del liste[i:j] Supprime les éléments d’indices entre i et j exclus.
list(x) Convertir x en une liste quand cela est possible
liste.count(x) Retourne le nombre d’occurrences de l’élément x
liste.index(x) Retourne l’indice de la première occurrence de l’élément x dans la liste
liste.append(x) Ajout d’un élément à la fin de la liste
liste.insert(i,x) Insérer l’élément x à la position i dans la liste
liste.remove(x) Supprime la première occurrence de x dans la liste
Pr. Safae Berrichi & Naoual Nassiri 10
Langage python

Collection d'objets sous Python

b. Dictionnaires, tuples et sets


a. Dictionnaires
Définition
• Les dictionnaires se révèlent très pratiques lorsque vous devez manipuler des structures
complexes à décrire et que les listes présentent leurs limites. Les dictionnaires sont des
collections non ordonnées d’objets, c’est-à-dire qu’il n’y a pas de notion d’ordre
(i.e. pas d’indice). On accède aux valeurs d’un dictionnaire par des clés comme sur
l’exemple suivant :
– >>> etudiant = {} // list etudiant= []
– >>> etudiant["nom"] = « mohammed »
– >>> etudiant["age"] = 18
– >>> etudiant[" poids "] = 64
– >>> etudiant
– {'nom ': ' mohammed', ‘age': 18 , 'poids ': 64}

Pr. Safae Berrichi & Naoual Nassiri 11


Langage python

Collection d'objets sous Python

b. Dictionnaires, tuples et sets


a. Dictionnaires
Remarque
• Un dictionnaire est affiché sans ordre particulier. On peut aussi initialiser toutes les clés
et les valeurs d’un dictionnaire en une seule opération :
– >>> etudiant = {'nom ': ' mohammed', ‘age': 18 , 'poids ': 64}
• Pour récupérer la valeur associée à une clé donnée, il suffit d’utiliser la syntaxe suivante
nom_dictionnaire["cle"]. Par exemple :
– >>> etudiant [" age"]
• Toutes les clés de dictionnaire utilisées jusqu’à présent étaient des chaînes de caractères.
Rien n’empêche d’utiliser d’autres types d’objets comme des entiers, cela peut parfois
s’avérer très utile. Néanmoins, nous vous conseillons, autant que possible, d’utiliser
systématiquement des chaînes de caractères pour vos clés de dictionnaire.

Pr. Safae Berrichi & Naoual Nassiri 12


Langage python

Collection d'objets sous Python

b. Dictionnaires, tuples et sets


a. Dictionnaires
Itération sur les clés pour obtenir les valeurs
• Il est possible d’obtenir toutes les valeurs d’un dictionnaire à partir de ses clés :
– >>> etudiant = {'nom ': ' mohammed', ‘age': 18 , 'poids ': 64}
– >>> for key in etudiant :
– ... print (key , etudiant [ key ])
Méthodes .keys(), .values()
• Les méthodes .keys() et .values() renvoient, comme vous pouvez vous en doutez,
les clés et les valeurs d’un dictionnaire :
– >>> etudiant. keys ()
– dict_keys ([' nom ', ‘age', ‘poids'])
– >>> etudiant. values ()
– dict_values ([‘mohammed', 18, 64])
Pr. Safae Berrichi & Naoual Nassiri 13
Langage python

Collection d'objets sous Python

b. Dictionnaires, tuples et sets


a. Dictionnaires
Existence d’une clé

• Pour vérifier si une clé existe dans un dictionnaire, on peut utiliser le test d’appartenance
avec l’instruction in qui renvoie un booléen :
>>> if "poids" in etudiant :
print (" La clé 'poids ' existe pour etudiant ")

NB. On peut appliquer les fonctions et opération de la liste dans les dictionnaires.

Pr. Safae Berrichi & Naoual Nassiri 14


Langage python

Collection d'objets sous Python

b. Dictionnaires, tuples et sets


b. Tuples
Définition
• Les tuples (« n-uplets » en français) correspondent aux listes à la différence qu’ils sont
non modifiables. Pratiquement, ils utilisent les parenthèses au lieu des crochets :
– >>> x = (1, 2, 3)
– >>> x [2]
– >>> x [0:2]
– >>> x [2] = 15 (erreur)

• L’affectation et l’indiçage fonctionnent comme avec les listes. Mais si on essaie de


modifier un des éléments du tuple, python renvoie un message d’erreur. Si vous voulez
ajouter un élément (ou le modifier), vous devez créer un autre tuple

Pr. Safae Berrichi & Naoual Nassiri 15


Langage python

Collection d'objets sous Python

b. Dictionnaires, tuples et sets


b. Tuples
Remarque
• Les listes, les dictionnaires et les tuples sont des objets qui peuvent contenir des
collections d’autres objets. On peut donc construire des listes qui contiennent des
dictionnaires, des tuples ou d’autres listes, mais aussi des dictionnaires contenant des
tuples, des listes, etc.
c. Sets
• Les containers de type set représentent un autre type d’objet séquentiel qui peut se révéler très
pratique. Ils ont la particularité d’être non modifiables, non ordonnés et de ne contenir qu’une
seule copie maximum de chaque élément. Pour créer un nouveau set on peut utiliser les accolades :
– >>> s = {1, 2, 3, 3}
– >>> type (s) // <class 'set '>

Pr. Safae Berrichi & Naoual Nassiri 16


Langage python

Collection d'objets sous Python

b. Dictionnaires, tuples et sets


c. Sets
• Notez que la répétition du 3 dans la définition du set en ligne 1 donne au final un seul 3
car chaque élément ne peut être présent qu’une seule fois. A quoi différencie-t-on un set
d’un dictionnaire alors que les deux utilisent des accolades ? Le set sera défini
seulement par des valeurs {val1, val2, ...} alors que le dictionnaire aura toujours des
couples clé/valeur {clé1: val1, clé2: val2, ...}.
• En général, on utilisera la fonction interne à Python set() pour générer un nouveau set.
Celle-ci prend en argument n’importe quel objet itérable et le convertit en set
(opération de casting) :
– >>> set ([1 , 2, 4, 1])
– >>> set ((2 , 2, 2, 1))
– >>> set ( range (5))
– >>> set ({" clé 1": 1, "clé 2": 2}) // {'clé1', 'clé2'}
– >>> set ([" ti", "to", "to "])
– >>> set (" Maître corbeau sur un arbre perché")
Pr. Safae Berrichi & Naoual Nassiri 17
Langage python

Collection d'objets sous Python

b. Dictionnaires, tuples et sets


c. Sets
• Nous avons dit plus haut que les sets ne sont pas ordonnés, il est donc impossible de
récupérer un élément par sa position.
• Il est également impossible de modifier un de ses éléments. Par contre, les sets sont
itérables :
– >>> s = set ([1 , 2, 4, 1])
– >>> s [1] // erreur
– >>> for itr in s:
– ... print (itr)
• Les containers de type set sont très utiles pour rechercher les éléments uniques d’une
suite d’éléments. Cela revient à éliminer tous les doublons.

Pr. Safae Berrichi & Naoual Nassiri 18

Vous aimerez peut-être aussi