Institut Supérieur d’Informatique de Mahdia
Programmation Avancée en Python
Mme. Amal Gassara
Auditoire: LCS2-GLSI
Nombre d’heures: 10.5 (cours) et 21(TP)
Année universitaire: 2024/2025
Chapitre 1:
Les structures de données
Introduction
Les collections en Python
List: collection ordonnée (selon l’ordre d’insertion) acceptant des valeurs
dupliquées et de types différents
Tuple : collection ordonnée (selon l’ordre d’insertion) acceptant des
valeurs dupliquées et de types différents
Set : collection non-ordonnée et non-indexée acceptant les types
différents et n’autorisant pas les valeurs dupliquées
Dictionary : collection non-ordonnée acceptant les valeurs dupliquées
avec des clés personnalisées
String: une séquence de caractères ordonnée.
Introduction
Mémoire
Les variables en Python
Donnée Objet
Une donnée (nom de la variable) possède: référence
• Une identité (adresse mémoire) a
• Un type 505626232 9
int
• Une valeur (le contenu) 505626232
Une donnée référence un objet
>>>a = 9
>>>id(a) 505626232
>>>type(a) <class 'int'>
Deux types d’objet:
• Mutable (ou muable): peut être modifié après sa création (en préservant
la même identité)
• Immutable (ou immuable): ne peut pas être modifié après sa création
(peut être réaffecté)
Introduction
Exemple d’objets muables Mémoire
list Donnée Objet
dict
set liste [2,3,8,5]
20373256 [1,3,8,5]
list
20373256
liste = [2, 3, 8, 5]
print(id(liste)) # affiche 20373256
liste[0] = 1
print(liste) #affiche [1, 3, 8, 5]
print(id(liste)) # affiche 20373256
Après modification de la liste, son id n’a pas été changé.
Introduction
Exemple d’objets immuables Mémoire
int et float ch
'bonjour'
Str 50562623
str
bool 20344960 505626232
tuple 'bonsoir
6'str
20344960
ch = "bonjour"
print(id(ch)) # affiche 50562623
ch[3] = "t" # TypeError: 'str' object does not support item assignment
ch = "bonsoir"
print(id(ch)) # affiche 20344960
Un objet immuable peut être réaffecté mais ne peut être modifié
Introduction
Les types sous Python
Les types
élémentaires Les conteneurs
int
float
bool Non Mutables Mutables
Tuples Listes
Chaines de caractères Dictionnaires
Ensembles
Définitions :
Un conteneur, appelé aussi une collection de données, est un objet
composite destiné à contenir d’autres objets plus simples
Les données contenues dans un conteneur sont appelées les éléments.
Un conteneur mutable est un objet modifiable
Un conteneur non mutable est un objet non modifiable
Les Listes
Les listes
Une liste (tableau dynamique) :
Une liste est une structure de données qui contient une série de valeurs.
Permet de manipuler une séquence d'objets modifiable.
Contient un nombre non fixé d’éléments, de manière ordonnée.
Peut contenir des éléments de type hétérogènes (des valeurs de types
différents, par exemple entier et chaîne de caractères)
Création d’une liste
Une liste vide:
>>> liste = []
Une liste avec des éléments hétérogènes:
>>> liste =['Bonjour','Python',3.12,'!']
Une liste contenant une autre liste:
>>> liste =['Bonjour','Python',[3.11, 3.12],'!']
Les listes
Accès aux éléments d’une liste
vous pouvez appeler ses éléments par leur position. Ce numéro est appelé
indice (ou index) de la liste.
Accès avec les indices des éléments
Les indices positifs: les indices d’une liste de n éléments commence à 0 et
se termine à n-1
Liste 'Bonjour' 'python' 3.12 '!'
Indice positif 0 1 2 3
>>> liste = ['Bonjour','Python',3.12,'!']
>>> liste[0]
'Bonjour'
>>> elt=liste[2]
Les listes
Les indices négatifs:
La liste peut également être indexée avec des nombres négatifs
Les indices négatifs reviennent à compter à partir de la fin. Leur principal
avantage est que vous pouvez accéder au dernier élément d’une liste à
l’aide de l’indice -1 sans connaître la longueur de cette liste.
Liste 'Bonjour' 'python' 3.12 '!'
Indice positif 0 1 2 3
Indice négatif -4 -3 -2 -1
>>> liste[-4] #liste[-tailleListe]=liste[0]
'Bonjour'
Les listes
Modification des éléments d’une liste
>>> liste[0]='Salut'
>>> liste[2]=4
>>> liste
['Salut', 'Python', 4, '!']
Les listes
Accès avec le découpage en tranches ou Slicing: Accéder à plus qu’un élément
avec l’operateur de sélection [Début : Fin: Pas]
>>> L = ['Hello','Python',3.12,'!']
L[i:j] Extraire la sous-liste de l’élément i (inclus) à l’élément j (exclu) et le pas par défaut 1
>>> L[1:3] ['Python', 3.12]
L[i:j:k] Extraire la sous-liste de l’élément i (inclus) à l’élément j (exclu) par un pas égal à k
>>> L[4:0:-1] ['!', 3.12, 'Python']
L[i:] Extraire la sous-liste depuis l’élément i (inclus) jusqu'à la fin de la liste.
>>> L[2:] [3.12,'!']
L[:j] Extraire la sous-liste de début indice 0 jusqu'à l'indice j (exclu).
>>> L[:2] ['Hello', 'Python']
L[:] Extraire la sous-liste de début jusqu'à la fin de la liste
>>> L[:] ['Hello','Python',3.12,'!']
Les listes
Les fonctions prédéfinies sur les listes
len Retourne la longueur de la liste
>>> L =['Hello','Python',3.12,'!'] 4
>>> len(L)
min, max et sum renvoient respectivement le minimum, le maximum et la somme d’une
liste passée en argument
>>> L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print('Min=', min(L)) Min = 0
>>> print('Max=', max(L)) Max = 9
>>> print('Somme=', sum(L)) Somme = 45
>>> Liste =['Hello','Python',3.12,'!']
>>> min(Liste) TypeError:unorderable
types: float() < str()
del Supprime la liste ou Supprime un élément de la liste
>>> L =['Hello','Python',3.12,'!']
>>> del(L[0])
>>> L ['Python',3.12,'!']
>>> del(L)
>>> L L is not defined
Les listes
Les méthodes communes des listes
Syntaxe : Nom_liste.nom_methode(paramètres)
>>> liste = ['Hello','Python',3.12,'!']
append(x) Ajoute un élément x (nombre, chaîne, liste, etc.) à la fin d’une liste
>>> liste.append(4); liste ['Hello','Python',3.12,'!',4]
insert(i,x) Modifie une liste en insérant x dans la position d’indice i
>>>liste.insert(2,8); liste ['Hello','Python',8,3.12,'!']
reverse() Modifie la liste en reversant l’ordre de ses éléments
>>>liste.reverse(); liste ['!', 3.12, 'Python', 'Hello']
index(x) Retourne l’indice de x dans la liste
>>>liste.index("Python") 1
count(x) Retourne le nombre d’occurrences de x dans la liste
>>>liste.count("Python") 1
Les listes
>>> liste = ['Hello','Python',3.12,'!']
remove(x) Supprime la première occurrence de x dans la liste
>>> liste.remove(3.12); liste) ['Hello','Python','!']
pop(index) Renvoie l’élément d’indice index et le supprime de la liste
>>>liste.pop(1); liste 'Python',
['Hello',3.12,'!']
sort() Trie par ordre croissant les éléments de la liste
>>>nbr=[17,38,10,25,72] [10, 17, 25, 38, 72]
>>>nbr.sort(); nbr
>>>nbr.sort(reverse=True) [72, 38, 25, 17, 10]
join() Transforme une liste en string
>>> ":".join(liste) 'Hello:Python:3.12:!'
Les listes
Les opérations sur les listes
Parcourir les éléments de la liste avec la boucle for
ville=["Tunis","Sfax","Mahdia","Sousse","Monastir"]
for i in ville: for i in range(len(ville)):
print(i) print(ville[i])
Parcourir une liste avec la boucle while
values=[1,2,3,4,5]
somme=0
i=0
while i < len(values):
somme+=values[i]
i+=1
print(somme)
Les listes
Concaténation (+) : Concatène deux listes
>>>liste1 = ['Hello','Python',3.9,'!'] ['Hello','Python',3.9,
>>>liste2=['Salut', 'Python', 3.10] '!','Salut','Python',3.10]
>>>liste1+liste2
Multiplication (*): Multiple le contenu d’une liste
['Hello', 'Python', 3.12,
>>>liste = [Hello','Python',3.12,'!'] '!','Hello', 'Python', 312,
>>>liste*2; '!']
Appartenance (in ou not in): Teste l’appartenance d’un élément dans la liste (renvoie True
ou False)
>>>liste = [Hello','Python',3.9,'!']
True
>>> "Python" in liste
Comparaison (== ou !=) Compare deux listes
>>>liste1 = ['Hello','Python',3.9,'!'] False
>>>liste2=['Salut', 'Python', 3.10] True
>>>liste1 == liste2;
>>>liste1 != liste2
Les listes
Les listes en compréhension en python
La compréhension de liste est une astuce python permettant d' optimiser le code .
Elle permet de créer une liste à partir d’une itération.
L'idée est de simplifier le code pour le rendre plus lisible et donc plus rapide à
écrire et plus simple à maintenir.
Syntaxe:
new_list = [ fonction(element) for element in liste if condition(element)]
Exemple1:
Sans la compréhension de liste Avec la compréhension de liste
liste = []
for x in range(5): liste = [x for x in range(5)]
liste.append(x) print(liste)
print(liste)
Affiche [0, 1, 2, 3, 4]
Les listes
Il est également possible d’appliquer un filtre lors de la création d’une liste en
compréhension afin de ne pas prendre un compte certains éléments de la liste ou
de l’itération de départ.
Exemple 2: Filter une liste
list = [1,4,2,7,1,9,0,3,4,6,6,6,8,3]
- Filtrer les valeurs de cette liste en gardant que les valeurs
supérieures à 5
Sans la compréhension de liste Avec la compréhension de liste
newList = [] newList=[x for x in list if x > 5]
for x in list:
if x > 5:
newList.append(x)
Affiche [7, 9, 6, 6, 6, 8]
Les listes
Exemple 3: Filter une liste
- Filtrer les chaines ayant une longueur < 4
list = ["hello", "the", "world"]
Sans la compréhension de liste Avec la compréhension de liste
newList = []
for x in list: newList=[x for x in list if len(x) < 4]
if len(x) < 4: print(newList)
newList.append(x)
print(newList)
Affiche ['the']
Les listes
Un intérêt des listes en compréhension est aussi de permettre de construire
une nouvelle liste à partir d’une liste existante .
Exemple 4: Exécuter une fonction sur chaque élément d'une liste
list = [1, 2, 3, 4]
newList = [2 * x for x in list]
print(newList) # affiche [2, 4, 6, 8]
Exemple 5: Exécuter une fonction sur chaque élément d'une liste
list = ["hello", "the", "world"] # affiche [5, 3, 5]
newList = [len(x) for x in list]
print(newList)
Les Tuples
Les tuples
Un tuple (n-uplet) :
Est une collection ordonnée et non modifiable
Peut contenir des éléments de type hétérogènes
Création d’un tuple
Un tuple vide:
>>> t= ()
Un tuple avec des éléments hétérogènes:
>>> t = ('Bonjour','Python',3.9,'!')
>>> type(t)
<class 'tuple'>
Un tuple contenant un autre tuple:
>>> tuple =('Bonjour','Python',(3.9,4),'!')
Les tuples
Accès aux éléments d’un tuple
Accès avec les indices des éléments en lecture uniquement
Tuple 'Bonjour', 'python', 3.9 '!'
Indice positif 0 1 2 3
Indice négatif -4 -3 -2 -1
>>> t = ('Bonjour','Python',3.9,'!')
>>> t[0]
'Bonjour'
>>> element=t[2]
>>> t[-4] #t[-taille]=t[0]
'Bonjour'
Modification des éléments d’un tuple: Un tuple n’est pas modifiable
>>> t[0]='Salut'
TypeError: 'tuple' object does not support item assignment
Les tuples
Accès avec le découpage en tranches ou Slicing:
Accéder à plus qu’un élément avec l’operateur de sélection [Début : Fin: Pas]
>>> t=('Bonjour','Python',3.9,'!')
>>> t[:2]
('Bonjour', 'Python')
>>> t[1:]
('Python', 3.9, '!')
>>> t[1:2]
('Python')
>>> t[0:3:2]
('Bonjour', 3.9)
Les tuples
Les fonctions prédéfinies sur les tuples
len Retourne la longueur du tuple
>>> t =('Hello','Python',3.9,'!') 4
>>> len(t)
min, max et sum renvoient respectivement le minimum, le maximum et la somme
d’un tuple passé en argument
>>> t = (1,2,6,0,7) Min = 0
>>> print('Min=', min(t) Max = 9
>>> print('Max=', max(t)) Somme = 45
>>> print('Somme=', sum(t))
>>> T =('Hello','Python',2.9,'!') TypeError:unorderable
>>> min(T) types: float() < str()
Les tuples
Les méthodes sur les tuples
count(x) Retourne le nombre d’occurrences de x dans un tuple
>>> T =('Hello','Python',3.9,'!') 1
>>> T.count("Python")
index(x) Retourne l’indice de x dans le tuple
>>> T =('Hello','Python',3.9,'!') 2
>>> T.index(3.9)
Les tuples
Les opérations sur les tuples
Parcourir un tuple avec la boucle for
values=(1,2,3,4)
somme=0
for element in values: for element in range(len(values)):
somme+=element somme+=values[element]
print(somme)
Parcourir un tuple avec la boucle while
somme=0; i=0
while i < len(values):
somme+=values[i]
i+=1
print(somme)
Déballer un tuple dans plusieurs variables:
>>> a,b,c,d=values #nombre de variables doit être égal à la longueur du tuple
>>> print(a,b,c,d,sep='|') 1|2|3|4
Les tuples
Concaténation (+) : Concatène deux tuples
>>> t1 = ('Hello','Python',3.9,'!')
>>> t2=('Salut', 'Python', 4) ('Hello','Python',3.9,
>>> t1+t2 '!','Salut','Python',4)
Multiplication (*): Multiple le contenu d’un tuple
>>>t = ('Hello','Python',3.9,'!') ('Hello','Python',3,9, '!',
>>>t*2; 'Hello', 'Python', 3,9, '!')
Appartenance (in ou not in): Teste l’appartenance d’un élément dans le tuple
>>> t = (Hello','Python',3.9,'!')
True
>>> "Python" in t
Comparaison (== ou !=): Compare deux tuples
>>> t1 = ('Hello','Python',3.9,'!')
>>> t2 =('Salut', 'Python', 4)
>>> t1 == t2 False
>>> t1 != t2 True
Création d’un tuple de tuples (,): Forme un tuple de tuples
>>> t1 = (1,2,3)
>>> t2 =(4,5,6) ((1, 2, 3), (4, 5, 6))
>>> t1,t2
Les Chaines de caractères
Les chaines de caractères
Une chaine de caractères:
Est une séquence de caractères ordonnée et non modifiable.
Les chaines sont délimitées par des " ou par des '.
Création d’une chaine de caractères
Une chaine vide:
>>> ch = " "
Une chaine
>>> ch='Bonjour' #ou ch="Bonjour"
>>> ch
'Bonjour'
>>> type(ch)
(<class 'str'>
Les chaines de caractères
Accès aux éléments d’une chaine de caractères
Accès avec les indices des éléments en lecture uniquement
caractères b o n j o u r
indices 0 1 2 3 4 5 6
>>> ch= "bonjour"
>>> ch[0]
b
Modification des éléments d’une chaine de caracatères:
Attention: les éléments d’une chaine ne sont pas modifiables
>>> ch[0]="B"
TypeError: 'str' object does not support item assignment
Les chaines de caractères
Accès aux éléments d’une chaine de carcatères
Accès avec le découpage en tranches ou Slicing
>>> ch= "bonjour"
Syntaxe Description Exemples
ch[i:j] permet d’extraire une portion de la chaîne >>> ch[0:3]
'bon'
ch [:k] renvoie les k premiers caractères de ch >>> ch4[:5]
'bonjo'
ch[-k:] renvoie les k derniers caractères de ch >>> ch[-6:]
'onjour'
ch[::p] renvoie les caractères de ch par pas p >>> ch[::2]
'bnor'
Les chaines de caractères
Les opérations sur les chaines de caractères
Parcourir les éléments d’une chaine avec la boucle for
ville="Mahdia" ville="Mahdia"
for i in ville: for i in range(len(ville)):
print(i) print(ville[i])
Parcourir une chaine avec la boucle while
ville="Mahdia"
i=0
while i <len(ville):
print(ville[i])
i+=1
Les chaines de caractères
Les opérations sur les chaines de caractères
>>> ch= "bonjour"
Opérations Description Exemple
len() Retourne la taille de la chaîne >>> len(ch)
7
+ Concatène deux chaînes >>> ch2=ch+' monsieur'
>>> print(ch2)
bonjour monsieur
>>> '123' + 1
TypeError: cannot concatenate 'str' and
'int' objects
* Duplique une chaîne >>> ch*3
'bonjourbonjourbonjour'
in Teste l’appartenance d’un >>> "x" in ch
not in caractère ou une sous-chaîne False
>>> "bon" in ch
True
== Compare deux chaines >>> ch!=ch2
!= True
Les chaines de caractères
Les méthodes communes sur les chaines
>>> Ch = "bonjour"
Méthodes Description Exemple
count(x) Retourne le nombre d’occurrences de x dans >>> n=ch.count("B")
la chaine >>>n
0
>>> ch.count("b")
1
index(x) Retourne l’indice de x dans la chaine >>>n=ch.index("n")
(retourne une erreur s’il n’existe pas) >>>n
2
>>>n=ch.index("N")
ValueError: substring not found
find(x) Recherche une sous-chaîne x dans la chaîne >>>ch.find("bon")
et retourne son indice (retourne -1 si elle 0
>>>ch.find("Bon")
n’existe pas)
-1
split() Découpe une chaîne selon un séparateur et >>>ch2="bonjour monsieur"
retourne une liste >>>l=ch2.split()
>>>l
['bonjour', 'monsieur']
Les chaines de caractères
Les méthodes communes sur les chaines
>>> Ch = "bonjour"
Méthodes Description Exemple
isupper() Renvoie True si toute la chaine est en >>> ch.isupper()
majuscule, False sinon False
islower() Renvoie True si toute la chaine est en >>> ch.islower()
minuscule, False sinon True
isnumeric() Renvoie True si tous les caractère de la >>> ch1="12345"
chaine sont des caractères numériques, >>> ch1.isnumeric(); ch.isnumeric()
True
False sinon False
isalpha() Renvoie True si tous les caractère de la >>> ch.isalpha(); ch1.isalpha()
chaine sont des caractères alphabétiques, True
False
False sinon
Isalnum() Renvoie True si tous les caractère de la >>> ch.isalnum()
chaine sont des caractères True
alphanumériques, False sinon
Les chaines de caractères
Les méthodes communes sur les chaines
>>> Ch = "bonjour"
Exemple
Méthodes Description
Ch = "bonjour"
upper() Convertit la chaine en majuscules >>> ch.upper()
'BONJOUR'
lower() Convertit la chaine en minuscules >>> ch.lower()
'bonjour'
replace() Remplace une chaîne par une autre >>> ch.replace("n","N")
'boNjour'
capitalize() Convertit le premier caractère d'une chaîne en >>> ch.capitalize()
'Bonjour'
lettre majuscule
swapcase() Renvoie une copie de la chaine avec des >>> ch.swapcase()
'BONJOUR'
caractères majuscules convertis en minuscules
et vise versa
lstrip() Renvoie une copie de la chaîne avec les >>>ch1=" Bonjour"
espaces de début supprimés. >>>ch1.lstrip()
'Bonjour'
rstrip() Enlève les espaces de fin >>> ch1="Bonjour Mr "
>>> ch.rstrip()
'Bonjour Mr'
Les Dictionnaires
Les dictionnaires
Un dictionnaire :
Est une collection de couples clé:valeur modifiables et non ordonnés
La clé pourra être alphabétique, numérique, liste, …
La clé ne peut être présente qu’une seule fois dans le dictionnaire
Les valeurs pourrons être de tout type sans exclusion.
Création d’un dictionnaire
Un dictionnaire vide:
>>> d = {} # ou bien d = dict()
Un dictionnare avec des clés de type chaines de caractères:
>>> d = {"Nom":"Python","Version":3.9}
# ou bien d = dict(nom="Python",version=3.9)
>>> type(d)
<class 'dict'>
Les dictionnaires
Accès aux éléments d’un dictionnaire
Accès à une valeur du dictionnaire en utilisant la clé:
Clé Nom Version
Valeur Python 3.9
>>> d={"Nom":"Python","Version":3.9}
>>> d["Version"]
3.9
Modification des éléments d’un dictionnaire:
Si la clé est déjà présente, la valeur associée est mise à jour, sinon une
nouvelle paire clé: valeur est ajoutée au dictionnaire.
>>> d ={"Nom":"Python","Version":3.9}
>>> d["Nom"]="Python language" #mise à jour de la valeur
>>> d
{'Nom': 'Python language', 'Version': 3.9}
Les dictionnaires
Les fonctions prédéfinies sur les dictionnaires
>>> d={"Nom":"Python","Version":3.9}
Fonctions Description Exemple
len() Retourne la longueur du dictionnaire >>> len(d)
2
sorted() Trie les clés ou les valeurs d’un >>> sorted(d.keys())
dictionnaire par ordre croissant s’ils sont ['Nom', 'Version']
>>> sorted(d.values())
de même type ou de types comparables
TypeError: unorderable types: float() <
str()
min() Retourne le minimum des clés ou des >>> min(d.keys())
valeurs d’un dictionnaire 'Nom'
max() Retourne le maximum des clés ou des >>> max(d.keys())
valeurs d’un dictionnaire 'Version'
del () Supprimer un élément d’un dictionnaire >>> del (d['Version'])
>>> d3
{"Nom":"Python"}
Les dictionnaires
Les méthodes communes sur les dictionnaires
>>> d ={"Nom":"Python","Version":3.9}
Méthodes Description Exemple
items() Retourne les couples du dictionnaire >>> d.items()
dict_items([('Nom', 'Python'), ('Version', 3.9)])
values() Retourne les valeurs du dictionnaire sous >>> d.values()
forme de liste dict_values(['Python', 3.9])
keys() Retourne les clés du dictionnaire sous >>> d.keys()
forme de liste dict_keys(['Nom', 'Version'])
get() Renvoie la valeur de la clé si elle existe >>> d.get("Nom") #d["Nom"]
'Python'
update() Mis à jour le dictionnaire avec les couples >>> d.update({"Nom":"Python Language"})
clé/valeur en remplaçant les clés >>> d
{'Nom': 'Python language', 'Version': 3.9}
existantes.
copy() Copier un dictionnaire dans un autre >>> d2=d.copy(); d2
{'Nom': 'Python language','Version': 3.9}
pop(c) Supprime l’élément de la clé c et donne >>> d.pop("Version")
sa valeur 3.2
>>> d {'Nom': 'Python'}
clear() Supprimer les éléments d’un dictionnaire >>> d.clear(); d
{}
Les dictionnaires
Les opérations sur les dictionnaires
Parcourir un dictionnaires avec la boucle for
dic = {'Nom': 'Mohamed', 'Age': 20}
for key in dic.keys(): # ou bien for key in d:
print(key,dic[key], sep='->') Résultat:
for key,value in dic.items(): Nom -> Mohamed
print(key,value,sep='->') Age -> 20
Opérations Description Exemple
In Teste l’appartenance d’un élément if 20 in d.values():
not in dans le dictionnaire print("Existe")
else:
print("n’existe pas")
== Compare deux dictionnaires >>> dic==d
!= False
Les Ensembles
Les ensembles
Un Ensemble (Set):
Un ensemble est une collection non ordonnée et mutable d’éléments
uniques séparés par des virgules et représentés entre accolades.
Chaque élément est unique (pas de doublons) et doit être immuable
(non modifiable).
Les éléments d'un ensemble ne sont stockés dans aucun ordre particulier
Les ensembles sont des structures non indexées.
Création d’un ensemble
Un ensemble vide:
>>> S1=set() #ou bien S1=set({})
Un ensemble contenant un seul élément
>>> S2 = #
{1}
affiche {'!', 'Python', 'Salut', 3.10}
Un ensemble avec plusieurs éléments hétérogènes
>>> S3 ={'Salut','Python','Python',3.10,'!'}
>>> S3
Les ensembles
Un ensemble est construit avec la méthode set()
>>> S4=set({"Salut", "Python",3.10,"Python","!"});
>>> #ou bien S4=set(["Salut", "Python",3.10,"Python","!"])
>>> S4
# affiche {'Python', '!', 'Salut', 3.10}
Un ensemble est construit en utilisant une boucle for
>>> S5={x for x in range(1,4)}
>>> S5
# affiche {1,2,3}
Accès aux éléments d’un ensemble
Il n’est pas possible d’accéder aux éléments d’un ensemble avec
l’opérateur [] comme avec les autres conteneurs.
En revanche, il est possible de parcourir un ensemble.
S={1,2,3} 1
for elt in S: 2
3
print(elt)
Les ensembles
Les fonctions prédéfinies sur les ensembles
Soit l’ensemble S1
>>> S1={1, 2, 3, 4}
Fonctions Description Exemple
len() Retourne la longueur d’un ensemble >>> len(S1)
4
sorted() Retourne une liste contenant les >>> sorted(S1)
éléments d’un ensemble triés par ordre [1, 2, 3, 4]
croissant s’ils sont de même type
min() Retourne le minimum des éléments >>> min(S1)
d’un ensemble 1
max() Retourne le maximum des éléments >>> max(S1)
d’un ensemble 4
Sum() Retourne la somme des éléments d’un >>> sum(S1)
ensemble 10
del () Supprimer un ensemble >>> del(S1)
>>> S1
NameError: name 'S1' is not
defined # S1 a été supprimé
Les ensembles
Les opérations sur les ensembles
Soient les deux ensembles S1 et S2
>>> S1={1, 2, 3, 4}
>>> S2={3, 4, 5, 6}
Opérations Description Exemple
X&Y Retourne l’intersection de l’ensemble X et Y >>> S1 & S2
{3, 4}
X|Y Retourne l’union de l’ensemble X et Y >>> S1 | S2
{1, 2, 3, 4, 5, 6}
X-Y Retourne l’ensemble des éléments de X qui ne >>> S1 - S2
sont pas dans Y {1, 2}
>>> S2 - S1
{5, 6}
X^Y Retourne l’ensemble des éléments qui sont >>> S1 ^ S2
soit dans X soit dans Y {1, 2, 5, 6}
In ou not in Teste l’appartenance d’un élément dans >>> 6 in S1
l’ensemble False
== ou != Compare deux ensembles >>> S1==S2
False
Les ensembles
Les méthodes communes sur les ensembles
Opérations Description Exemple
difference() Retourne la différence entre deux >>> S1.difference(S2)
ensembles {1, 2}
intersection() Retourne l’intersection de deux >>> S1.intersection(S2)
ensembles {3, 4}
union() Retourne l’union de deux >>> S1.union(S2)
ensemble {1, 2, 3, 4, 5, 6}
add(x) Ajoute un élément x à l'ensemble >>> S1.add('hello');S1
{1, 2, 3, 4, 'hello'}
update(x) Modifie l’ensemble en le >>> S1.update(['world', 5, 6]);S1
rajoutant des éléments {1, 2, 3, 4, 'hello','world', 5, 6}
copy() Renvoie une copie de l'ensemble >>> E=S1.copy();E
{1, 2, 3, 4, 'hello','world', 5, 6}
Les ensembles
Les méthodes communes sur les ensembles
Opérations Description Exemple
remove(x) Supprime l’élément x de >>> S1.remove('world');S1
l’ensemble {1, 2, 3, 4, 'hello', 5, 6}
>>> S1.remove('Bonjour')
S3.remove('Bonjour') KeyError:
'Bonjour'
issubset() Renvoie True si un ensemble est un >>> S2.issubset(S1)
sous ensemble d’un autre, False False
sinon >>> I={1,2}
>>> I.issubset(S1)
True
pop() Supprime et retourne un élément >>> x=S1.pop()
arbitraire de l'ensemble. 6
>>> S1
{1, 2, 3, 4, 'hello', 5}
clear() Supprime tous les éléments de >>> S1.clear();S1
l'ensemble set()