Aller au contenu

Le bon enclos⚓︎

On considère une table (une liste de dictionnaires Python) qui contient des enregistrements relatifs à des animaux hébergés dans un refuge.

Les attributs des enregistrements sont :

  • nom,
  • espece,
  • age,
  • enclos.

Les valeurs associées à nom et espece sont des chaines de caractères, celles associées à age et enclos des entiers.

Voici un exemple d'une telle table :

🐍 Script Python
animaux = [ {'nom': 'Medor', 'espece': 'chien', 'age': 5, 'enclos': 2},
            {'nom': 'Titine', 'espece': 'chat', 'age': 2, 'enclos': 5},
            {'nom': 'Tom', 'espece': 'chat', 'age': 7, 'enclos': 4},
            {'nom': 'Belle', 'espece': 'chien', 'age': 6, 'enclos': 3},
            {'nom': 'Mirza', 'espece': 'chat', 'age': 6, 'enclos': 5}]

On garantit que chaque enregistrement contient l'ensemble des informations (aucune clé ne manque dans un dictionnaire).

Programmer une fonction selection_enclos qui :

  • prend en paramètres :
    • une liste table_animaux contenant des enregistrements relatifs à des animaux (comme dans l'exemple ci-dessus),
    • un numéro d'enclos num_enclos ;
  • renvoie une table contenant les enregistrements de table_animaux dont l'attribut enclos est égal à num_enclos. Dans cette table, les enregistrements seront donnés dans le même ordre que dans la table d'entrée.

Exemples avec la table animaux ci-dessus :

Exemples

🐍 Console Python
>>> selection_enclos(animaux, 5)
[{'nom': 'Titine', 'espece': 'chat', 'age': 2, 'enclos': 5},
{'nom':'Mirza', 'espece':'chat', 'age':6, 'enclos':5}]
>>> selection_enclos(animaux, 2)
[{'nom':'Medor', 'espece':'chien', 'age':5, 'enclos':2}]
>>> selection_enclos(animaux, 7)
[]
###
# Testsbksl-nlanimaux = [{'nom': 'Medor', 'espece': 'chien', 'age': 5, 'enclos': 2},bksl-nl {'nom': 'Titine', 'espece': 'chat', 'age': 2, 'enclos': 5},bksl-nl {'nom': 'Tom', 'espece': 'chat', 'age': 7, 'enclos': 4},bksl-nl {'nom': 'Belle', 'espece': 'chien', 'age': 6, 'enclos': 3},bksl-nl {'nom': 'Mirza', 'espece': 'chat', 'age': 6, 'enclos': 5}]bksl-nlbksl-nlassert selectionpy-undenclos(animaux, 5) == [{'nom': 'Titine', 'espece': 'chat', 'age': 2, 'enclos': 5}, {bksl-nl 'nom': 'Mirza', 'espece': 'chat', 'age': 6, 'enclos': 5}]bksl-nlassert selectionpy-undenclos(animaux, 2) == [bksl-nl {'nom': 'Medor', 'espece': 'chien', 'age': 5, 'enclos': 2}]bksl-nlassert selectionpy-undenclos(animaux, 7) == []bksl-nlbksl-nl# Tests supplémentairesbksl-nlenclos = {animal['enclos'] for animal in animaux}bksl-nlfor numpy-undenclos in enclos:bksl-nl reponse = [ani for ani in animaux if ani['enclos'] == numpy-undenclos]bksl-nl assert selectionpy-undenclos(animaux, numpy-undenclos) == reponsebksl-nlbksl-nlassert selectionpy-undenclos(animaux, -1) == []bksl-nlbksl-nlanimaux = [{'nom': 'Moder', 'espece': 'lapin', 'age': 5, 'enclos': 0},bksl-nl {'nom': 'Ollie', 'espece': 'furet', 'age': 6, 'enclos': 0}]bksl-nlassert selectionpy-undenclos(animaux, 0) == animauxbksl-nlassert selectionpy-undenclos(animaux, 1) == []bksl-nlbksl-nl 5/5

def selectionpy-undenclos(tablepy-undanimaux, numpy-undenclos):bksl-nl ...bksl-nlbksl-nlbksl-nl# Testsbksl-nlanimaux = [{'nom': 'Medor', 'espece': 'chien', 'age': 5, 'enclos': 2},bksl-nl {'nom': 'Titine', 'espece': 'chat', 'age': 2, 'enclos': 5},bksl-nl {'nom': 'Tom', 'espece': 'chat', 'age': 7, 'enclos': 4},bksl-nl {'nom': 'Belle', 'espece': 'chien', 'age': 6, 'enclos': 3},bksl-nl {'nom': 'Mirza', 'espece': 'chat', 'age': 6, 'enclos': 5}]bksl-nlassert selectionpy-undenclos(animaux, 5) == [{'nom': 'Titine', 'espece': 'chat', 'age': 2, 'enclos': 5}, {bksl-nl 'nom': 'Mirza', 'espece': 'chat', 'age': 6, 'enclos': 5}]bksl-nlassert selectionpy-undenclos(animaux, 2) == [bksl-nl {'nom': 'Medor', 'espece': 'chien', 'age': 5, 'enclos': 2}]bksl-nlassert selectionpy-undenclos(animaux, 7) == []bksl-nlbksl-nlNone

A

Z

Retour en haut de la page