Files
cours/high-school/ensembles_dynamiques/TP/_collection_list.py
2025-09-26 11:16:23 +02:00

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