clients.csv
Vous pouvez télécharger le fichier clients.csv.
Voici un code en python, qui à partir du fichier clients.csv
obtient un tableau tab1
doublement indexé contenant les données du fichier.
fichier1 = open("clients.csv", "r", encoding="utf-8")
print(fichier1)
lignes1=fichier1.read().split("\n")
print(lignes1)
tab1=[]
for e in lignes1:
tab1.append(e.split(","))
print(tab1)
Analyser ce code.
commandes.csv
Vous pouvez télécharger le fichier commandes.csv.
Télécharger ce fichier et écrire le code pour obtenir le tableau tab2
contenant ses données.
Voici le code d'une fonction de recherche qui permet de trouver les éléments ayant le descripteur recherché.
def recherche(rech,descripteur):
liste_recherche=[]
for e in tab1:
if rech==e[descripteur]:
liste_recherche.append(e)
return liste_recherche
print(recherche("Jean",1))
Ecrire une fonction analogue en utilisant une liste par compréhension.
Ecrire une fonction de recherche dont le paramètre est l'âge et qui renvoit tous ceux qui ont un âge supérieur ou égal
Il faut indiquer selon quels critères on veut effectuer
ce tri. Pour cela, on appelle la fonction sorted
ou la méthode sort
avec l’argument supplémentaire key qui est une fonction
renvoyant la valeur utilisée pour le tri. La méthode sort
trie la liste en place et la remplace, alors que la fonction sorted
renvoie une nouvelle liste correspondant la liste trié, la liste initiale étant conservée.
Voici le code pour trier suivant le descripteur nom
tab=tab1[1:]
def cle1(tab):
return tab[1]
tab.sort(key=cle1)
tabC=[tab1[0]]+tab
print(tabC)
Analyser ce code.
Voici le code pour trier suivant le descripteur id
tab=tab1[1:]
def cle_num(tab):
return int(tab[0])
tab.sort(key=cle_num)
tabC1=[tab1[0]]+tab
print(tabC1)
Analyser ce code.
On va trier selon le nom
puis en cas d'ex-aequo suivant l'age
.
Voici le code :
tab=tab1[1:]
def cle2(tab):
return tab[1],int(tab[2])
tabC2=sorted(tab,key=cle2)
tabC2=[tab1[0]]+tabC2
print(tabC2)
Analyser ce code.
On veut fusionner les deux fichiers en faisant coïncider leur id
.
Voici le code :
t_fusion=tab1[:]
for i in range(len(tab1)):
for c in [ com for com in tab2 if com[1]==tab1[i][0] ]:
t_fusion[i].append(c[0])
t_fusion[i].append(c[2])
print(t_fusion)