IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Cours pour débutants : apprendre à programmer avec Python au lycée

Image non disponible


précédentsommairesuivant

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.
>>> # 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.
>>> 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.
>>> 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.
>>> 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]

précédentsommairesuivant