mirror of
https://github.com/Fare-spec/cours.git
synced 2025-12-09 19:30:40 +00:00
Add university content
This commit is contained in:
177
high-school/ensembles_dynamiques/TP/_collection_list.py
Normal file
177
high-school/ensembles_dynamiques/TP/_collection_list.py
Normal file
@@ -0,0 +1,177 @@
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf8 -*-
|
||||
|
||||
#################################
|
||||
#
|
||||
# _COLLECTION_LIST.PY
|
||||
# -------------------
|
||||
#
|
||||
# Module du type ensemble
|
||||
# implémenté sur les listes
|
||||
#################################
|
||||
|
||||
# Un ensemble est une collection d'éléments, d'occurence unique.
|
||||
# Les fonctions sont implémentées dans le paradigme fonctionnel.
|
||||
|
||||
|
||||
def initialiser_ensemble():
|
||||
"""
|
||||
Construit un ensemble vide.
|
||||
|
||||
Paramètre :
|
||||
- aucun
|
||||
|
||||
Résultat :
|
||||
- ENSEMBLE vide
|
||||
|
||||
Pré-condition :
|
||||
- aucune
|
||||
|
||||
Effet de bord :
|
||||
- aucune
|
||||
"""
|
||||
return list()
|
||||
|
||||
|
||||
def est_ensemble_vide(ensemble):
|
||||
"""
|
||||
Teste si l'ensemble est vide.
|
||||
|
||||
Paramètre :
|
||||
- ensemble : LIST, l'ensemble à tester
|
||||
|
||||
Pré-condition :
|
||||
- aucune
|
||||
|
||||
Effet de bord :
|
||||
- aucun
|
||||
"""
|
||||
return len(ensemble) == 0
|
||||
|
||||
|
||||
def copier_ensemble(ensemble):
|
||||
"""
|
||||
Construit la copie d'un ensemble.
|
||||
|
||||
Paramètre :
|
||||
- ensemble : LIST, la source
|
||||
|
||||
Résultat :
|
||||
- LIST : une copie de la source
|
||||
|
||||
Pré-condition :
|
||||
- aucune
|
||||
|
||||
Effet de bord :
|
||||
- aucun
|
||||
"""
|
||||
return ensemble[:]
|
||||
|
||||
|
||||
def ajouter(ensemble, element):
|
||||
"""
|
||||
Ajoute un element à la copie d'un ensemble
|
||||
|
||||
Paramètres :
|
||||
- ensemble : LIST, l'ensemble à abonder
|
||||
- element : ANY, l'élément à ajouter
|
||||
|
||||
Résultat :
|
||||
- LIST, l'ensemble abondé
|
||||
|
||||
Pré-condition :
|
||||
- aucune
|
||||
|
||||
Effet de bord :
|
||||
- aucun
|
||||
"""
|
||||
copie = ensemble.copy()
|
||||
copie.append(element)
|
||||
return copie
|
||||
|
||||
|
||||
def supprimer(ensemble, element):
|
||||
"""
|
||||
Construire une copie de l'ensemble privé d'un élément.
|
||||
Si l'élément à supprimer n'est pas dans l'ensemble initial,
|
||||
alors une copie intégrale est renvoyée.
|
||||
|
||||
Paramètres :
|
||||
- ensemble ; LIST, la collection à amender
|
||||
- element : ANY, l'élément à supprimer
|
||||
|
||||
Résultat :
|
||||
- LIST, la copie amendée de l'ensemble
|
||||
"""
|
||||
resultat = ensemble[:]
|
||||
return resultat.remove(element)
|
||||
|
||||
|
||||
def rechercher(ensemble, cle, critere=lambda x, y: x == y):
|
||||
"""
|
||||
Construit la sous-collection constituée des éléments d'un ensemble
|
||||
dont la clé satisfait un critère donné.
|
||||
|
||||
Paramètres :
|
||||
- ensemble : LIST, la collection à explorer
|
||||
- cle : ANY, la clé à rechercher
|
||||
- critere : FUNCTION ou LAMBDA, test utilisé pour la recherche
|
||||
|
||||
Résultat :
|
||||
- LIST, la collection extraite des éléments satisfaisant le test
|
||||
|
||||
Pré-condition :
|
||||
- aucune
|
||||
|
||||
Effet de bord :
|
||||
- aucun
|
||||
"""
|
||||
return [element for element in ensemble if critere(element, cle)]
|
||||
|
||||
|
||||
def supprimer_critere(ensemble, cle, critere):
|
||||
"""
|
||||
Construit la collection des éléments d'un ensemble,
|
||||
dont la clé satisfait le critère donné.
|
||||
|
||||
Paramètres :
|
||||
- ensemble : LIST, la collection source
|
||||
- cle : ANY, la clé à employer pour la suppression
|
||||
- critere : FUNCTION ou LAMBDA, critère de sélection
|
||||
|
||||
Résultat :
|
||||
- LIST : la copie de l'ensemble amendée
|
||||
|
||||
Pré-condition :
|
||||
- aucune
|
||||
|
||||
Effet de bord :
|
||||
- aucun
|
||||
"""
|
||||
return [element for element in ensemble if not critere(element, cle)]
|
||||
|
||||
|
||||
def lister(ensemble, affichage=print):
|
||||
"""
|
||||
Afficher le contenu d'un ensemble,
|
||||
en formattant chaque élément selon la fonction d'affichage fournie.
|
||||
|
||||
Paramètres :
|
||||
- ensemble : LIST, la collection à énumérer
|
||||
- affichage : FUNCTION, la fonction à appliquer à chaque élément.
|
||||
|
||||
Résultat :
|
||||
- None : NONETYPE
|
||||
|
||||
Pré-condition :
|
||||
- aucune
|
||||
|
||||
Effet de bord :
|
||||
- Affichage sur la sortie standard
|
||||
"""
|
||||
for item in ensemble:
|
||||
affichage(item)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pass
|
||||
Reference in New Issue
Block a user