C) Construction d'une table

— L’opération de projection est notamment utilisée pour construire un nouvelle table contenant seulement une partie des colonnes de la table d’origine.


Pour cela, plutôt que d’extraire seulement la valeur d’un attribut, on peut construire un nouveau dictionnaire contenant les valeurs des attributs qui nous intéressent.


Ce sera donc le principe de ces constructions de tables


Sous un tableur, créer le tableau notes.csv


Nom

 Maths  

NSI

 Anglais

Galois

 17  

14

 17

Gauss

 20  

12

 8

Euler

 19  

15

 13


Dans l'éditeur Python,  créer un fichier et enregistrez-le en le nommant :  traitementC.py

import csv
fichier=open("notes.csv", encoding='utf8')
table=list(csv.DictReader(fichier,delimiter=";"))
print(table)
fichier.close()


Résultats:  (si le résultat n'est pas un des deux affichages ci-dessous, essayer de changer le delimiteur ci dessus pour la virgule "," suivant le tableur utilisé)



Construction par projection d'une table avec les notes de maths
# Dans l'éditeur Python
ta= [ {"Nom":ligne["Nom"],"Maths":float(ligne["Maths"])} for ligne in table ]

print(ta)


# On obtient dans la console
[{'Nom': 'Galois', 'Maths': 17.0}, {'Nom': 'Gauss', 'Maths': 20.0},
{'Nom': 'Euler', 'Maths': 19.0}]


Opérations 
Plus généralement on peut au passage effectuer des opérations sur les lignes au moment de faire une

sélection ou une projection.


Par exemple, si on veut ajouter 10% aux notes d’anglais on obtient :


# Dans l'éditeur Python
tb= [ {"Nom":ligne["Nom"],"Anglais":float(ligne["Anglais"])*1.1} for ligne in table ]

print (tb)


# On obtient dans la console
[{'Nom': 'Galois', 'Anglais': 18.700000000000003},
{'Nom': 'Gauss', 'Anglais': 8.8},
{'Nom': 'Euler', 'Anglais': 14.3}]



En utilisant les méthodes de projection et sélection


A faire par vous même



*niveau 1 : A réaliser rapidement


1. construire un tableau t1 contenant les noms des élèves et les notes en NSI seulement ;


2. construire un tableau t2 contenant les noms des élèves et les notes en Anglais ramenées sur 10, arrondis à un chiffre après la virgule. (mot clé : round() )



** niveau 2 : A réaliser avec un programme dédié


3. construire un tableau t3 contenant les noms des élèves et les notes en Maths augmentées de 1 point, sans dépasser 20 ;


4. construire un tableau t4 contenant les noms des élèves et une nouvelle clé nommée "Moyenne"

de valeur la moyenne des 3 notes pour chaque matière



Créé avec HelpNDoc Personal Edition: Créer des documentations web iPhone