Listes

Une liste est un ensemble d’éléments

list

Les éléments d’une liste sont:

  • ordonnés

  • séparés par une virgule ,

  • délimités par des crochets []

Voici une liste avec 3 éléments:

[2, 3, 5]
[2, 3, 5]

Une liste est ordonnée.
Deux listes avec les mêmes éléments, mais un ordre différent sont différentes.

[1, 2] == [2, 1]
False

Nouveaux concepts

Dans ce chapitre vous allez découvrir les concepts de

  • création de liste: a = [1, 2, 3]

  • indexage d’un élément: a[0]

Les opérateurs de

  • concaténation +

  • répétition *

Les fonctions:

  • len() pour retourner la longueur de la liste

  • list() pour transformer une séquence en liste

  • range() pour produire une plage d’entiers

Exemples de listes

Voici une liste avec des nombres.

primes = [2, 3, 5, 7, 11, 13]
primes
[2, 3, 5, 7, 11, 13]

Voici une liste avec des chaines de caractères.

fruits = ['pomme', 'banane', 'poire', 'orange']
fruits
['pomme', 'banane', 'poire', 'orange']

Une liste peut contenir un mélange d’objets de types différents.

mix = [123, 'hello', True, False]
mix
[123, 'hello', True, False]

Une liste peut même contenir une deuxième liste.

[2, 3, [0, 1]]
[2, 3, [0, 1]]

Sur un Mac vous pouvez choisir et insérer des émojis en faisant ceci

  • Choisir  > Préférences Système… > Clavier

  • Cocher Afficher les visualisateurs de claver et d’émoji dans la barre de menu

animaux = ['🐶', '🐱', '🐭']
animaux
['🐶', '🐱', '🐭']

Et voici une liste vide.

[]
[]

Opérateur de concaténation

L’opérateur + permet de concaténer des listes.

primes + fruits
[2, 3, 5, 7, 11, 13, 'pomme', 'banane', 'poire', 'orange']
d = fruits + animaux
d
['pomme', 'banane', 'poire', 'orange', '🐶', '🐱', '🐭']

Opérateur de répétition

L’opérateur * permet de concaténer des listes.
Nous pouvons facilement créer des listes d’objets identiques.

uns = [1] * 13
uns
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

Voici la liste animaux répétée deux fois.

animaux * 2
['🐶', '🐱', '🐭', '🐶', '🐱', '🐭']

Index

Un index entre crochets permet d’accéder à un élément d’une liste.
Les indexes commencent à 0. Le premier élément a donc l’index 0.

fruits[0]
'pomme'

Le deuxième élément d’une liste a l’index 1.

fruits[1]
'banane'

Un index négatif permet d’adresser les éléments d’une liste depuis sa fin.

fruits[-1]
'orange'

Voici l’avant-dernier fruit.

fruits[-2]
'poire'

Affectation d’un élément

L’affectation suivante change le deuxième élément en ananas.

fruits[1] = 'ananas'
fruits
['pomme', 'ananas', 'poire', 'orange']

L’affectation suivante transforme le dernier élément en cerise.

fruits[-1] = 'cerise'
fruits
['pomme', 'ananas', 'poire', 'cerise']

Plages numériques

La fonction range() crée une plage d’entiers. Nous allons la revoir avec les boucles for. Pour afficher les éléments de la plage, nous entourons range() par la fonction list()

La fonction range(n) produit une plage de 0 à n-1.
Voici la plage des nombres de 0 à 9.

list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

La fonction range(m, n) produit une plage de m à n-1.
Voici la plage des nombres de 10 à 19.

list(range(10, 20))
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Un troisième argument peut être utilisé pour indiquer l’incrément.
Voici la plage des nombres pairs de 10 à 18.

list(range(10, 20, 2))
[10, 12, 14, 16, 18]

Une plage peut être inversée avec un incrément négatif.
Voici la plage des entiers de 30 à 21.

list(range(30, 20, -1))
[30, 29, 28, 27, 26, 25, 24, 23, 22, 21]

Longueur

La fonction len retourne la longeur d’une liste.

len(fruits)
4

La longeur de la liste vide est 0.

len([])
0

Transformer en liste

La fonction list transforme une séquence en liste.

list('abcdefghij')
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

La méthode split() permet de découper une phrases en mots et créer une liste.

Attention:
split() une méthode qui est attachée à une chaine avec la notation dotée.

'les mots sont séparés par des espaces'.split()
['les', 'mots', 'sont', 'séparés', 'par', 'des', 'espaces']

Nous pouvons également transformer une chaine avec des émojis en liste.

list('🍏🍎🍐🍊🍋🍌')
['🍏', '🍎', '🍐', '🍊', '🍋', '🍌']