Utilisation avancée des indices
Indices négatifs
[1]:
x = 'indice'
print(x[-1])
print(x[-2])
print(x[-3])
print(x[-4])
print(x[-5])
print(x[-6])
e
c
i
d
n
i
A slice of ham
Syntaxe de l’indexation par tranche:
conteneur[start:stop:step] # de start à stop par saut de step
conteneur[start:stop] # step = 1
conteneur[start:] # de start à la fin
conteneur[:stop] # du début à stop
Attention :
start
est incluestop
est exclue
[2]:
x = list(range(10))
x
[2]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3]:
x[2:8:3]
[3]:
[2, 5]
[4]:
x[:4]
[4]:
[0, 1, 2, 3]
[5]:
x[4:]
[5]:
[4, 5, 6, 7, 8, 9]
[6]:
x[::-1]
[6]:
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
[7]:
x[:-2]
[7]:
[0, 1, 2, 3, 4, 5, 6, 7]
Affectation par slice
[8]:
x
[8]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[9]:
x[::2] = ['X'] * 5
x
[9]:
['X', 1, 'X', 3, 'X', 5, 'X', 7, 'X', 9]
Exercices
Ecrire le corps de la fonction suivante:
def construire_matrice(valeurs, nb_lignes):
''' renvoie la matrice composée de `valeurs` à `nb_lignes` lignes.
Une matrice est une liste de listes.
`valeurs` est une liste contenant les valeurs de la matrice : d'abord la 1ère ligne, puis la seconde, ...
`nb_lignes` est un entier indiquant le nombre de lignes de la matrice retournée.
'''
Enrichir cette fonction avec un nouvel argument : construire_matrice(valeurs, nb_lignes, valeurs_rangees_par_lignes=True)