Suite ordonnée d'éléments, éventuellement vide
Eléments accessibles par leur rang
En Python :
Chaîne
Liste
n-uplet
Inclusion
x in s True
si l'élément x est dans la séquence s
et False
sinon
x not in s
contraire !
Concaténation
s1 + s2
concatenation des séquences s1 et s2
s * n
ou n * s
n copies de la séquence s
Accès
s[i]
accès à l'élément d'indice i (l'origine a l'indice 0)
s[i:j[:pas]]
accès aux éléments entre les indices i (inclus) et j (exclus).
Le pas est une valeur optionnelle pouvant être négative (valeur par défaut : 1)
Autres classiques...
len(s)
longueur de la séquence s
min(s)
plus petit élément de la séquence s
max(s)
plus grand élément de la séquence s
>>> s = 1,7,2,4
>>> type(s)
<class 'tuple'>
>>> len(s)
4
>>> 3 in s
False
>>> s[1]
7
>>> s + (5,3)
(1, 7, 2, 4, 5, 3)
>>> s = '1724'
>>> type(s)
<class 'str'>
>>> len(s)
4
>>> '3' in s
False
>>> s[1]
'7'
>>> s + '53'
'172453'
>>> s = [1,7,2,4]
>>> type(s)
<class 'list'>
>>> len(s)
4
>>> 3 in s
False
>>> s[1]
7
>>> s + [5,3]
[1, 7, 2, 4, 5, 3]
Séquence modifiable d'éléments
>>> s = [1,7,2,4]
>>> type(s)
<class 'list'>
>>> s[1] = 3
>>> s
[1, 3, 2, 4]
>>> s[1]
3
>>> s[1] = 'A'
>>> s
[1, 'A', 2, 4]
>>> s = [1,3,5,7]
>>> s[2]
5
>>> s[len(s)-1]
7
>>> for c in s :
... print(c,end=' ')
...
1 3 5 7
>>> s[1:3]
[3,5]
>>> s[1:3] = [2,4]
>>> s
[1, 2, 4, 7]
>>> s[len(s):len(s)] = [8,9]
>>> s
[1, 2, 4, 7, 8, 9]
>>> s = [1,2,3]
>>> s
[1, 2, 3]
>>> t = s
>>> t[0] = 9
>>> t
[9, 2, 3]
>>> s
[9, 2, 3]
>>> s = [1,2,3]
>>> t = []
>>> t[:0] = s[0:]
>>> t
[1, 2, 3]
>>> t[0] = 9
>>> t
[9, 2, 3]
>>> s
[1, 2, 3]
Liste dont les éléments sont des listes
>>> s = [[4,5],[1,2,3],[6,7,8,9]]
>>> type(s)
<class 'list'>
>>> len(s)
3
>>> type(s[2])
<class 'list'>
>>> s[2]
[6, 7, 8, 9]
>>> s[2][1]
7
>>> s[1][2]
3
>>> s = [[4,5],[1,2,3],[6,7,8,9]]
>>> for c in s :
... print(c)
...
[4, 5]
[1, 2, 3]
[6, 7, 8, 9]
>>> s[2]
[6, 7, 8, 9]
>>> for c in s :
... for e in c :
... ... print(e, end=' ')
... print()
...
4 5
1 2 3
6 7 8 9
Affectation/initialisation (rappel)
s[i] = x
l'élément d'indice i de la liste s prend la valeur x.
s[i:j[:pas]] = x
les éléments entre les indices i (inclus) et j (exclus) prennent la valeur x.
Le pas est une valeur optionnelle (valeur par défaut : 1)
list(range(i[,j[,pas]]))
génération d'une liste contenant des valeurs entre i (inclus) et j (exclus).
Le pas est une valeur optionnelle (valeur par défaut : 1)
Suppression
del s[i:j[:pas]]
<==> s[i:j] = []
les éléments entre les indices i (inclus) et j (exclus) sont supprimés.
Le pas est une valeur optionnelle (valeur par défaut : 1)
Comptage
s.count(x)
retourne le nombre d'élément de la liste s qui ont une valeur égale à x.
s.index(x[,start[,stop]])
retourne l'index du premier élément de la liste s qui a une valeur égale à x.
On peut choisir l'indice de départ et éventuellement celui de fin.
Si x n'est pas trouvé, alors une erreur apparaît.
Ajout
s.append(x)
<==> s[len(s):len(s)] = [x]
ajoute l'élément x (ou la sous-liste x) dans la liste s
s.insert(i, x)
<==> s[i:i] = [x]
ajoute l'élément x (ou la sous-liste x) en position i dans la liste s
s.extend(s1)
<==> s[len(s):len(s)] = s1
ajoute la liste s1 en fin de liste s
Suppression
s.remove(x)
Enlève le premier élément (ou la première sous-liste x) dans la liste s
s.pop(i)
Enlève et retourne (affiche) l'élément en position i dans la liste s
Autres modifications
s.reverse()
Inverse les éléments de la liste s
s.sort()
Tri les éléments de la liste s
Et bien plus encore...
Parcours d'une liste dont les types sont différents à l'aide d'une boucle for
>>> divers = [3, 17.25, [5, 'Jean'], 'Linux is not Windoze']
>>> for item in divers:
... print(item, type(item))
3 <class 'int'>
17.25 <class 'float'>
[5, 'Jean'] <class 'list'>
Linux is not Windoze <class 'str'>
Séquence non modifiable d'éléments
singleton : (a)
paire : (a,b)
triplet : (a,b,c)
quadruplet : (a,b,c,d) . . .
n-uplet : (a,b,c,d,e,f,g,h,i,j,...)
>>> s = 1,7,2,4 ou >>> s = (1,7,2,4)
>>> type(s)
<class 'tuple'>
>>> s[1] = 3
Traceback ...
TypeError : 'tuple' object does not support item assignment
>>> s[1]
7
Même opérations que les listes (syntaxiquement)
MAIS les n-uplets (ou tuples) ne sont pas modifiables !
Intérêts :
Éviter les modifications par erreur,
Moins gourmands en ressources (mémoire et CPU),
Etc.
>>> s = ()
>>> type(s)
<class 'tuple'>
>>> s = 1,7,2,4
>>> type(s)
<type 'tuple'>
>>> s
(1, 7, 2, 4)
>>> s = (5)
>>> type(s)
<class 'int'>
>>> s = (5,)
>>> type(s)
<class 'tuple'>
>>> s = (5,)+()+(6,7,9)
>>> s
(5, 6, 7, 9)
>>> s = (5,6,7,9)
>>> s[1:3]
(6, 7)
>>> s[1:]
(6, 7, 9)
>>> s[:2]
(5, 6)
>>> s[-2:]
(7, 9)
Séquence non modifiable de caractères
>>> s = '1724'
>>> type(s)
<class 'str'>
>>> s[1] = '3'
Traceback ...
TypeError : 'str' object does not support item assignment
>>> s[1]
'7'
>>> s = 'une chaîne'
>>> s
'une chaîne'
>>> s = "une autre chaîne"
>>> s
'une autre chaîne'
>>> s = 'chaîne entrée sur \
plusieurs lignes'
>>> s
'chaîne entrée sur plusieurs lignes'
>>> s = 'c\'est ça "peuchère"'
>>> s
'c\'est ça "peuchère"'
>>> print(s)
c'est ça "peuchère"
>>> s = 'des caractères'
>>> s[9]
't'
>>> for c in s :
... print(c,end='')
...
des caractères
>>> s[4:9]
'carac'
>>> s[len(s)-1]
's'
>>> s[:4] + 'mo' + s[9] + s[-1]
'des mots'
Découpage
s.split([separator[,maxsplit]])
convertit la chaîne s en une liste de sous-chaînes.
On peut choisir le caractère séparateur en le fournissant comme argument (valeur par défaut : espace).
On peut imposer un nombre maximal de découpes.
>>> s='Ceci est un test'
>>> s.split()
['Ceci', 'est', 'un', 'test']
>>> s.split(' ', 2)
['Ceci', 'est', 'un test']
>>> s='A,C,A,C,T'
>>> s.split()
['A,C,A,C,T']
>>> s.split(',')
['A', 'C', 'A', 'C', 'T']
Regroupement (contraire)
s.join()
Recherche
s.find(sch[,start[,end]])
renvoit la position de la sous-chaîne sch dans la chaîne s.
On peut choisir l'indice de départ et éventuellement celui de fin.
Si sch n'est pas trouvé, alors la valeur -1 est renvoyée.
>>> s='Ceci est un test'
>>> s.find('un')
9
>>> s.find('toto')
-1
>>> s='ACACT'
>>> s.find('AC')
0
>>> s.find('AC',1)
2
Comptage
s.count(sch[,start[,end]])
compte le nombre de sous-chaînes sch dans la chaîne s.
On peut choisir l'indice de départ et éventuellement celui de fin.
Si sch n'est pas trouvé, alors la valeur 0 est renvoyée.
>>> s='ACACT'
>>> s.count('AC')
2
>>> s.count('AC',1)
1
>>> s.count('AT')
0
Mutation
s.replace(c1,c2[,maxCount])
remplace tous les caractères c1 par des caractères c2 dans la chaîne s.
On peut choisir un nombre maximal de mutations.
>>> s='ACACT'
>>> s.replace('A', 'T')
'TCTCT'
>>> s.replace('A', 'T',1)
'TCACT'
Conversion
float(s)
convertit la chaîne s en nombre réel.
La chaîne doit représenter un nombre (réel ou entier).
int(s)
convertit la chaîne s en nombre entier.
La chaîne doit représenter un nombre entier.
str(obj)
convertit l'objet obj en chaîne de caractères.
Peu importe le type de obj.
>>> float('12.36')
12.36
>>> int('12')
12
>>> str(12.36)
'12.36'
Formatage
s.format(obj1,obj2,...,objn)
à partir d'une chaîne « patron » (composée d'accolades), cette méthode permet de remplacer chaque couple d'accolades (contenant éventuellement un format {format}) par la conversion de l'objet correspondant.
>>> pi =3.1416
>>> r =4.7
>>> ch ="Aire d'un disque de rayon {} : {}."
>>> print(ch.format(r, pi * r**2))
Aire d'un disque de rayon 4.7 : 69.39794400000001
>>> ch ="Aire d'un disque de rayon {} : {:4.2f}."
>>> print(ch.format(r, pi * r**2))
Aire d'un disque de rayon 4.7 : 69.40
Autres opérations
s.lower()
convertit la chaîne s en minuscules
s.upper()
convertit la chaîne s en majuscules
s.title()
convertit l'initiale de chaque mot de s en majuscule
s.capitalize()
convertit en majuscule seulement la première lettre de s
s.swapcase()
convertit toutes les majuscules en minuscules, et vice-versa
Et bien d'autres encore !