XIII. Manipulation avancée de listes et de texte▲
XIII-A. Prendre un élément en comptant à partir de la fin▲
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
2.
3.
4.
5.
6.
7.
8.
>>>
# On reprend une liste de tests, un peu plus longue cette fois, et homogène.
>>>
maliste =
["zéro"
, "un"
, "deux"
, "trois"
, "quatre"
, "cinq"
]
>>>
maliste[-
1
] # on demande le dernier élément
'cinq'
>>>
maliste[-
2
] # l'avant-dernier
'quatre'
>>>
maliste[-
3
] # l'avant-avant-dernier (ou antépénultième), et ainsi de suite.
'trois'
XIII-B. Prendre une partie d'une liste▲
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
2.
3.
4.
5.
6.
7.
8.
>>>
maliste[1
:3
] # Ici on demande une partie de la liste et non un élément seul.
['un'
, 'deux'
]
>>>
# On remarque que cela fonctionne comme range(1,3), le 3 n'est pas compris.
>>>
# Voyons maintenant si l'on ne précise pas l'indice de départ ou d'arrivée:
>>>
maliste[1
:] # Sans indice d'arrivée, on ne s'arrête qu'à la fin,
['un'
, 'deux'
, 'trois'
, 'quatre'
, 'cinq'
]
>>>
maliste[:3
] # sans indice de départ, on commence du tout début.
['zéro'
, 'un'
, 'deux'
]
XIII-C. Le mot le plus long▲
On présente ici un petit algorithme qui trouve le mot le plus long dans le texte stocké dans la variable texte.
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
>>>
texte =
"voici une suite de mots presque en vrac"
>>>
mot_long =
""
# Cette variable contiendra le mot cherché.
>>>
# Le recordman de longueur en quelque sorte.
... # Pour l'instant on stocke le mot vide "" dedans.
... mots =
texte.split
(
) # On construit la liste des mots.
>>>
for
mot in
mots: # On parcourt cette liste (boucle for).
... if
len(
mot) >
len(
mot_long): # Si le mot rencontré bat le record de longueur,
... mot_long =
mot # on le proclame recordman.
...
>>>
mot_long # On affiche le résultat.
'presque'
XIII-D. Liste des rangs d'apparition d'une lettre▲
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
2.
3.
4.
5.
6.
7.
8.
>>>
mot =
"apparition"
>>>
rangs =
[] # Cette liste va accumuler les rangs de la lettre *i*.
>>>
for
rang in
range(
len(
mot)): # La variable rang parcourt les entiers de 0 au rang de la dernière lettre du mot.
... if
mot[rang] ==
'i'
:
... rangs.append
(
rang) # Si la lettre du mot est 'i', on stocke le rang dans notre liste.
...
>>>
rangs # On affiche le résultat.
[5
, 7
]