Aller au contenu

Des requêtes

On dispose de listes construites comme définies ci-dessous:

  • Liste de personnes constituée de tuples (identifiant, nom, prénom, année de naissance).
personnes = [ ('pers1', 'Labrosse', 'Adam', 2000), 
('pers2','Gemlamorte', 'Adèle', 1985), 
('pers3','Auboisdormant', 'Abel', 2001),
('pers4','Etpan', 'Ahmed', 1975), 
('pers5','Térieur', 'Alain', 1999), 
('pers6','Térieur', 'Alex', 1976), 
('pers7','Tanrien', 'Jean', 2010),
('pers8','Ouzi', 'Jacques', 1950),
('pers9','Deuf', 'John', 2006),
('pers10','Provist', 'Alain', 2011)
]
  • Liste de cours constituée de tuples (identifiant du cours, identifiant de personne, intitulé du cours). L'identifiant de personne est lié à la liste personnes précédente et désigne la personne qui enseigne ce cours.
cours = [('crs1', 'pers2', 'théorie des graphes'),
('crs2', 'pers4', 'programmation objet'),
('crs3', 'pers6', 'programmation fonctionnelle'),
('crs4', 'pers8', 'théorie des automates'),
('crs5', 'pers10', 'base de données relationnelle'),
('crs6', 'pers3', 'réseaux'),
('crs7', 'pers9', 'logique')
]

Par exemple, on lit avec le dernier tuple ('crs7', 'pers9', 'logique') que le cours de logique est identifié par le code crs7 et est assuré par la personne d'identifiant 'pers9', c'est à dire par John Deuf.

Question

Créer la liste des tuples (intitulé de cours, nom de l'enseignant dispensant ce cours, prénom de l'enseignant).

Solution
[(intitule, nom, prenom) 
for (id_crs, id_pers, intitule) in cours 
for (id_pers2, nom, prenom, annee) in personnes 
if id_pers == id_pers2]

Question

Un enseignant est une personne de la liste personnes qui enseigne au moins un cours. Créer la liste des enseignants (liste des couples (nom, prenom)).

Solution
[(nom, prenom) 
for (id_pers, nom, prenom, _) in personnes
if id_pers in [identif_pers for (_,identif_pers,_) in cours]
]