Python 3 a introduit l'opérateur * permettant d'extraire plusieurs éléments au début ou à la fin d'une liste.


Anti-pattern (Pas bien!)

my_list = ["titi", "tata", "toto", "riri", "fifi", "loulou"]
(enfant_1, enfant_2, reste_enfants) = my_list[0], my_list[1], my_list[2:]
print(reste_enfants)

(enfant_1, enfants_milieu, dernier_enfant) = my_list[0], my_list[1:-1], my_list[-1]
print(enfants_milieu)

(premier_enfants, enfants_milieu, dernier_enfants) = my_list[:-2], my_list[-2], my_list[-1]
print(premier_enfants)

Bonne pratique (Bien!)

my_list = ["titi", "tata", "toto", "riri", "fifi", "loulou"]
(enfant_1, enfant_2, *reste_enfants) = my_list
print(reste_enfants)

(enfant_1, *enfants_milieu, dernier_enfant) = my_list
print(enfants_milieu)

(*premier_enfants, enfants_milieu, dernier_enfants) = my_list
print(premier_enfants)