Manipulation basique de listes et de texte¶
Manipulation de listes¶
>>> maliste = [0, "un", 2] # on définit une liste pour faire des tests
>>> len(maliste) # on demande sa longueur (length en anglais)
3
>>> maliste[0] # on demande le premier élément (rang ou index 0)
0
>>> maliste[1] # le deuxième (index 1)
'un'
>>> "un" in maliste # on demande si le texte "un" est un élément de la liste
True
>>> "deux" in maliste
False
>>> maliste.index("un") # on demande l'index (rang) de l'élément "un"
1
>>> maliste.count("un") # on demande le nombre d'apparitions de l'élément "un"
1
Manipulation de texte¶
Note
Puisque Python considère qu’une chaîne est une liste de caractères, tout ce que nous venons de dire sur les listes est encore valable.
>>> montexte = "Blabla bli bloubloublou."
>>> len(montexte)
24
>>> montexte[0]
'B'
>>> montexte[1]
'l'
>>> montexte[23]
'.'
>>> "a" in montexte
True
>>> "z" in montexte
False
>>> montexte.index("B")
0
>>> montexte.index("b")
3
>>> montexte.index(".")
23
>>> montexte.count("b")
5
Certaines manipulations sont propres aux chaînes.
>>> montexte.lower()
'blabla bli bloubloublou.'
>>> montexte.strip(".")
'Blabla bli bloubloublou'
>>> montexte.split()
['Blabla', 'bli', 'bloubloublou.']
>>> montexte.lower().strip(".").split()
['blabla', 'bli', 'bloubloublou']
Ajouter du texte à du texte ou modifier par ajout¶
>>> montexte + " Merci."
'Blabla bli bloubloublou. Merci.'
>>> montexte
'Blabla bli bloubloublou.'
>>> montexte = montexte + " Merci."
>>> montexte
'Blabla bli bloubloublou. Merci.'
>>> montexte += " Beaucoup."
>>> montexte
'Blabla bli bloubloublou. Merci. Beaucoup.'
Manipulation avancée de listes et de texte¶
Prendre un élément en comptant à partir de la fin¶
>>> # On reprend une liste de test, 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'
Prendre une partie d’une liste¶
>>> 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']
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
.
>>> 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'
Liste des rangs d’apparition d’une lettre¶
>>> 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]