pokedex.csv
.csv
ont la particularité d'avoir différente représentation suivant le logiciel avec lequel il est ouvert.
Ouvrir le fichier
pokedex.csv
à l'aide de Sublime Text
.
Utiliser les touches Ctrl
+
O
ou par glisser déposer.
Ouvrir le fichier
pokedex.csv
à l'aide de Libreoffice CALC
.
pokemon.csv
et créer une liste nommée
pokedex
dont chaque élément est un dictionnaire ayant pour clés les données de la première
ligne du fichier pokemon.csv
et pour valeurs le contenu d'une ligne.
import csv
with open('pokemon.csv','r') as f:
pokedex = [dict(pokemon) for pokemon in csv.DictReader(f)]
pokemon.py
et
rajouter les instructions nécessaires pour répondre aux questions ci-dessous : pokedex
? pokemon.csv
?
pokedex
(en prenant par exemple le
première élément de la liste)keys()
pour obtenir les clésprint()
pour afficher le résultatgen_4
qui contient tous les pokémons de génération 4
gen_4
pokedex
et pour chaque élément tester si la clé
Generation
est égale à "4"
append
)
l'élement à la liste gen_4
len()
) low_pok
qui contient les noms (Name) de tous les pokémons dont les
points d'attaques (Attack) sont strictement inférieur à 20
Attack
.
low_pok
pokedex
et pour chaque élément tester si la clé
Attack
est strictement inférieur à 20
(C'est ici qu'on utilisera la conversion de la valeur de la clé Attack
en int
append
)
la valeur de la clé Name
à la liste low_pok
int( )
hard_flying
qui contient les ids (id
) de tous les pokémons
dont les points de vie (Health Points
) sont supérieur ou égal à 50 et qui possède le type
(Type
) Flying. and
.
hard_flying
pokedex
et pour chaque élément tester si la valeur de la clé
Health Points
est supérieur ou égal à 50
(ici aussi on utilisera la conversion de la valeur de la clé Health Points
en int
) and
) la valeur de la clé Type
est égale à Flying
.
Name
à la liste hard_flying
hard_flying
?
split
sur les chaines de caractères.
types
pokedex
et pour chaque élément à partir de la valeur de la clé Type
créer une liste tmp
contenant le.s type.s du pokémontmp
et pour chaque élément vérifier s'il n'est pas déjà dans la liste.append
)
"Ghost Flying".split(" ")
# Renvoie ["Ghost", "Flying"]
simpsons = [{'age': 39, 'name': 'Homer'},{'age': 10, 'name': 'Bart'}]
# pour trier la liste de dictionnaire, il faut avoir définie une
# fonction qui renvoie la valeur utilisée pour le trie
def get_age(dic):
return dic["age"]
# Aprés on peut utiliser une fonction de trie telle que sort, sorted, ...
# en lui donnant comme parametre optionnel la fonction.
simpsons.sort(key=get_age)
# [{'age': 10, 'name': 'Bart'}, {'age': 39, 'name': 'Homer'}]
int( )