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 inclue

  • stop 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)