Exercice : Les tris et les filtres
Question
Afficher les communes au nord de Limoges classées par ordre croissant de code postal.
Indice
Le nord et le sud sont définis par la latitude.
La latitude est définie dans la colonne n°8.
Le code postal est défini dans la colonne n°2.
Il faut commencer par le tri puis rechercher la latitude de Limoges (la casse est importante) et enfin effectuer le filtre.
Solution
Tri croissant suivant le code postal
tableau.sort(key=lambda x:x[1],reverse=False)
Recherche de la latitude de Limoges
for i in range(len(tableau)):
if tableau[i][2]=='BRESSUIRE':
latitude=tableau[i][7]
Affichage des communes au nord de Limoges
for i in range(len(tableau)):
if tableau[i][7]>latitude:
print(tableau[i])
VAULRY
ROUSSAC
THOURON
COMPREIGNAC
CHAMBORET
LE BUIS
NANTIAT
SAINT-SYMPHORIEN-SUR-COUZE
SAINT-SULPICE-LES-FEUILLES
ARNAC-LA-POSTE
LES GRANDS-CHEZEAUX
CROMAC
MAILHAC-SUR-BENAIZE
SAINT-GEORGES-LES-LANDES
SAINT-LEGER-MAGNAZEIX
DROUX
VILLEFAVARD
MAGNAC-LAVAL
DOMPIERRE-LES-EGLISES
SAINT-HILAIRE-LA-TREILLE
SAINT-MARTIN-DE-JUSSAC
CHAILLAC-SUR-VIENNE
SAINT-JUNIEN
SAINT-BRICE-SUR-VIENNE
SAINT-SORNIN-LA-MARCHE
LA BAZEUGE
ORADOUR-SAINT-GENEST
LE DORAT
DINSAC
LA CROIX-SUR-GARTEMPE
SAINT-SYLVESTRE
SAINT-LAURENT-LES-EGLISES
AMBAZAC
FOLLES
BESSINES-SUR-GARTEMPE
SAINT-PARDOUX
FROMENTAL
COUZEIX
BONNAC-LA-COTE
CHAPTELAT
RANCON
CHATEAUPONSAC
BALLEDENT
SAINT-SORNIN-LEULAC
SAINT-AMAND-MAGNAZEIX
SAINT-BONNET-DE-BELLAC
BLANZAC
SAINT-JUNIEN-LES-COMBES
BELLAC
BERNEUIL
BLOND
SAINT-OUEN-SUR-GARTEMPE
PEYRAT-DE-BELLAC
BREUILAUFA
THIAT
BUSSIERE-POITEVINE
DARNAC
SAINT-BARBANT
GAJOUBERT
NOUIC
MORTEMART
BUSSIERE-BOFFY
SAINT-MARTIAL-SUR-ISOP
MONTROL-SENARD
MEZIERES-SUR-ISSOIRE
LES BILLANGES
SAINT-LEGER-LA-MONTAGNE
LA JONCHERE-SAINT-MAURICE
AZAT-LE-RIS
SAINT-MARTIN-LE-MAULT
LUSSAC-LES-EGLISES
TERSANNES
VERNEUIL-MOUSTIERS
LAURIERE
SAINT-SULPICE-LAURIERE
JABREILLES-LES-BORDES
BERSAC-SUR-RIVALIER
SAUVIAT-SUR-VIGE
SAINT-MARTIN-TERRESSUS
MOISSANNES
LE CHATENET-EN-DOGNON
LE PALAIS-SUR-VIENNE
SAINTE-MARIE-DE-VAUX
SAINT-VICTURNIEN
SAINT-PRIEST-TAURION
SAINT-GENCE
SAINT-JOUVENT
NIEUL
PEYRILHAC
ORADOUR-SUR-GLANE
CIEUX
JAVERDAT
VEYRAC
RILHAC-RANCON
RAZES
SAILLAT-SUR-VIENNE
JOUAC
Question
Afficher les communes dont le nom est composé de plusieurs mots, classées d'est en ouest.
Indice
L'ouest et l'est sont définis par la longitude. Les valeurs augmentent quand on se déplace vers l'est.
Indice
La longitude est définie dans la colonne n°9.
Indice
Les noms composés comporte un tiret ('-' in tableau[i][j]) ou un espace (' ' in tableau[i][j]).
Indice
Le nom des communes est défini dans la colonne n°3.
Indice
Il faut commencer par le tri puis effectuer le filtre.
Solution
Tri décroissant suivant la longitude (d'est en ouest)
tableau.sort(key=lambda x:x[8],reverse=True)
Affichage des communes ayant un nom composé
for i in range(len(tableau)):
if '-' in tableau[i][2] or ' ' in tableau[i][2] :
print(tableau[i])
BEAUMONT-DU-LAC
PEYRAT-LE-CHATEAU
SAINT-AMAND-LE-PETIT
SAINT-JULIEN-LE-PETIT
SAINTE-ANNE-SAINT-PRIEST
SAINT-GILLES-LES-FORETS
NEUVIC-ENTIER
CHATEAUNEUF-LA-FORET
LA CROISILLE-SUR-BRIANCE
SAUVIAT-SUR-VIGE
ROZIERS-SAINT-GEORGES
LA PORCHERIE
SAINT-MEARD
SAINT-VITTE-SUR-BRIANCE
LES BILLANGES
SAINT-DENIS-DES-MURS
JABREILLES-LES-BORDES
LE CHATENET-EN-DOGNON
SAINT-LEONARD-DE-NOBLAT
SAINT-GERMAIN-LES-BELLES
SAINT-BONNET-BRIANCE
LA JONCHERE-SAINT-MAURICE
SAINT-SULPICE-LAURIERE
SAINT-LAURENT-LES-EGLISES
SAINT-MARTIN-TERRESSUS
LA GENEYTOUSE
SAINT-PAUL
MAGNAC-BOURG
SAINT-LEGER-LA-MONTAGNE
SAINT-GENEST-SUR-ROSELLE
BERSAC-SUR-RIVALIER
SAINT-PRIEST-TAURION
SAINT-SULPICE-LES-FEUILLES
VICQ-SUR-BREUILH
SAINT-JUST-LE-MARTEL
LES GRANDS-CHEZEAUX
ARNAC-LA-POSTE
SAINT-HILAIRE-BONNEVAL
SAINT-SYLVESTRE
PIERRE-BUFFIERE
BESSINES-SUR-GARTEMPE
SAINT-AMAND-MAGNAZEIX
CHATEAU-CHERVIX
SAINT-GEORGES-LES-LANDES
RILHAC-RANCON
LE PALAIS-SUR-VIENNE
COUSSAC-BONNEVAL
MAILHAC-SUR-BENAIZE
SAINT-HILAIRE-LA-TREILLE
SAINT-JEAN-LIGOURE
SAINT-PRIEST-LIGOURE
SAINT-SORNIN-LEULAC
BONNAC-LA-COTE
SAINT-PARDOUX
LE VIGEN
LA ROCHE-L'ABEILLE
DOMPIERRE-LES-EGLISES
SAINT-MAURICE-LES-BROUSSES
CONDAT-SUR-VIENNE
SAINT-SYMPHORIEN-SUR-COUZE
SAINT-LEGER-MAGNAZEIX
SAINT-MARTIN-LE-MAULT
SAINT-JOUVENT
LE BUIS
BOSMIE-L'AIGUILLE
SAINT-YRIEIX-LA-PERCHE
LA MEYZE
LUSSAC-LES-EGLISES
MAGNAC-LAVAL
SAINT-HILAIRE-LES-PLACES
SAINT-GENCE
SAINT-JUNIEN-LES-COMBES
AIXE-SUR-VIENNE
VERNEUIL-SUR-VIENNE
LE CHALARD
SAINT-MARTIN-LE-VIEUX
VERNEUIL-MOUSTIERS
RILHAC-LASTOURS
LADIGNAC-LE-LONG
LA BAZEUGE
SAINT-PRIEST-SOUS-AIXE
SAINT-OUEN-SUR-GARTEMPE
LES CARS
LE DORAT
SAINT-YRIEIX-SOUS-AIXE
AZAT-LE-RIS
BUSSIERE-GALANT
SAINTE-MARIE-DE-VAUX
SAINT-VICTURNIEN
ORADOUR-SUR-GLANE
PEYRAT-DE-BELLAC
ORADOUR-SAINT-GENEST
COGNAC-LA-FORET
LA CROIX-SUR-GARTEMPE
SAINT-SORNIN-LA-MARCHE
SAINT-CYR
SAINT-LAURENT-SUR-GORRE
SAINT-BRICE-SUR-VIENNE
MONTROL-SENARD
SAINT-MARTIN-DE-JUSSAC
SAINT-BONNET-DE-BELLAC
SAINT-AUVENT
MEZIERES-SUR-ISSOIRE
CHAMPAGNAC-LA-RIVIERE
BUSSIERE-POITEVINE
SAINT-JUNIEN
ORADOUR-SUR-VAYRES
CHAILLAC-SUR-VIENNE
SAINT-MARTIAL-SUR-ISOP
BUSSIERE-BOFFY
SAINT-BARBANT
LA CHAPELLE-MONTBRANDEIX
SAILLAT-SUR-VIENNE
SAINT-BAZILE
SAINT-MATHIEU
LES SALLES-LAVAUGUYON
MAISONNAIS-SUR-TARDOIRE
Question
Afficher la commune ayant la plus petite superficie et celle qui a la plus grande superficie.
Indice
La superficie est définie dans la colonne n°6.
Indice
La première ligne du tableau est tableau[0]. La dernière ligne du tableau est [-1].
Solution
Tri croissant suivant la superficie.
tableau.sort(key=lambda x:x[5],reverse=False)
Affichage de la commune ayant la plus petite superficie
print(tableau[0])
['87101', '87330', 'MORTEMART', 'Commune simple', 293.0, 369.0, 0.1, 46.0484465758, 0.95503235222]
Affichage de la commune ayant la plus petite superficie
print(tableau[-1])
['87187', '87500', 'SAINT-YRIEIX-LA-PERCHE', 'Chef-lieu canton', 383.0, 10132.0, 6.9, 45.5251111514, 1.20386934296]
Question
Afficher les communes qui seraient menacées si le niveau de la mer augmentait de 300 mètres, triées en ordre croissant par leur nom.
Indice
L'altitude moyenne est définie dans la colonne n°5.
Indice
Le nom des communes est défini dans la colonne n°3.
Indice
Il faut commencer par le tri puis effectuer le filtre.
Solution
Tri croissant suivant le nom.
tableau.sort(key=lambda x:x[2],reverse=False)
Affichage des communes ayant une altitude moyenne inférieure ou égale à 200 m
for i in range(len(tableau)):
if tableau[i][4]<=200 :
print(tableau[i])
DARNAC
THIAT
VERNEUIL-MOUSTIERS