mirror of
https://github.com/Fare-spec/cours.git
synced 2025-12-07 10:50:36 +00:00
178 lines
3.6 KiB
Python
178 lines
3.6 KiB
Python
#!/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
|