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
personnespré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]
]