Génération d’une liste

icône de pdf
Signaler

En Python, une liste est délimitée par des crochets, l’index du premier élément est 0, celui du deuxième est 1… Les éléments ne sont pas nécessairement tous de même type, une liste peut contenir plusieurs fois le même élément.

I) Créer une liste

Pour créer une liste en extension, il suffit de saisir ses éléments entre crochets, séparés par des virgules.

Exemple : liste1 = [36,11,"bonjour"].

L’instruction print(liste1) renvoie : [36, 11, 'bonjour'].

On crée une liste en compréhension à partir des éléments d’une liste initiale, éventuellement uniquement ceux vérifiant une certaine condition (filtrage).

Exemples : Les instructions suivantes définissent une liste dont les éléments sont les carrés :

À noter

« n%3 » est le reste de n dans la division euclidienne par 3 ou « reste de n modulo 3 ».

• des éléments de la liste aliste : [n**2 for n in aliste] ;

• des entiers de 2 à 8 inclus : [n**2 for n in range(2,9)] ;

• des entiers de 2 à 8 qui sont multiples de 3 :

[n**2 for n in range(2,9) if n% 3==0].

II) Modifier une liste

On suppose que l’on a déjà créé une liste nommée liste2, éventuellement vide (on crée une liste vide en tapant liste2 = [ ]).

La méthode « append » ajoute un élément en dernière position d’une liste. La syntaxe est liste2.append(56) : ajoute 56 en dernier élément (la nouvelle liste2 a un élément de plus).

On peut ainsi créer une liste à partir d’une liste vide en ajoutant les éléments un par un. Dans une boucle for ou while, c’est une manière de créer une liste de données qu’on calcule ou qui arrivent au fur et à mesure.

La méthode « extend » ajoute tous les éléments de la liste prise en argument (ici liste3) à la fin de la liste2 : liste2.extend(liste3).

On obtient les mêmes résultats par concaténation, mais en créant une nouvelle liste qui enregistre le résultat.

Exemples : liste4 = liste2 + [56] et liste5 = liste2 + liste3.

On peut créer une liste par répétition des éléments d’une liste existante.

Exemple : Les éléments de la liste [1,2,3] sont répétés 3 fois : liste6 = [1,2,3]*3. L’instruction print(liste6) renvoie [1, 2, 3, 1, 2, 3, 1, 2, 3].

Méthode

1)   Créer une liste d’entiers


a. Écrire un programme Python permettant de créer puis d’afficher la liste des 10 premiers multiples strictement positifs de 7.


b. Écrire un programme Python permettant de créer puis d’afficher la liste des diviseurs (positifs) de 360.

Conseil


a. Les multiples de 7 sont de la forme 7k, k entier de 1 à 10 (in range(1,11)).


b. On crée une liste vide. Pour chaque entier k de 1 à 360 (in range(1,361)), on teste si k est un diviseur de 360. Si oui, k est ajouté à la liste.

Solution

PB_Bac_05285_Math1_TT_p009-032_C01_Algo_2

PB_Bac_05285_Math1_TT_p009-032_C01_Algo_3


a. La première instruction correspond à la création de la liste mult7, la ­deuxième instruction permet de l’afficher.


b. « if 360 % k==0 » signifie « si le reste dans la division euclidienne de 360 par k est égal à 0 ». On obtient une liste de 24 diviseurs.

2)  Permuter deux éléments d’une liste

Écrire un programme permettant de transformer la liste [cylindre, hexagone, octogone, pyramide, quadrilatère] en la liste [quadrilatère, hexagone, octogone, pyramide, cylindre].

Conseil

Pour permuter les valeurs des variables A et B, il ne suffit pas d’écrire AB puis BA. Après exécution de ce programme, les variables A et B contiennent la même valeur (celle de B). Pour ne pas « perdre » la valeur initialement contenue dans A, on la stocke temporairement dans une variable auxiliaire.

Solution

À noter

Avec Python, on peut aussi plus simplement écrire : figures[0], figures[4] = figures[4], figures[0].

PB_Bac_05285_Math1_TT_p009-032_C01_Algo_4