Traitement des listes en Python

Le contenu des listes

Que peut-on mettre dans une liste?

À la page précédente, nous y avons mis:
  • des chaînes de caractères (la liste des courses)
  • des nombres entiers (la liste des nombres premiers)

Mais il est possible d'y introduire des variables de toutes sortes.

Ça y est, j'ai trouvé une faille à votre système. Les listes sont des variables. Va-t-on pouvoir mettre des listes dans des listes? Ce serait un comble.

Aucun souci à cela: une liste peut contenir des listes.

Dans l'interpréteur Python, frappe les commandes:

>>> liste1 = ["mickey","donald"]
>>> liste2 = ["fifi", "riri", "loulou"]
>>> superListe = [liste1, liste2]
>>> print superListe

Dans l'exemple qui précède, on voit que la superListe est formée des deux listes élémentaires.

La question qui se pose maintenant est de savoir comment accéder à chacun des éléments qui constitue la superListe.

Pour accéder au premier élément de la superListe, frappe les commandes:

>>> print superListe[0]

  • Quel est le résultat?
  • Comment accéder à la deuxième sous-liste?

Si l'on accède facilement à chacune des sous-listes, peut-on encore accéder aux éléments qui constituent les sous-listes?

La réponse est positive.

Pour accéder au premier élément de la liste2 frappe les commandes:

>>> print superListe[1][0]

  • Quel est le résultat?
  • Comment accéder au premier élément de la sous-liste 1, dans la superListe?
Une pierre
deux maisons
trois ruines
quatre fossoyeurs
un jardin
des fleurs

un raton laveur

une douzaine d'huîtres
un citron
un pain
un rayon de soleil
une lame de fond
six musiciens
une porte avec son paillasson
un monsieur décoré de la légion d'honneur

un autre raton laveur
...
Jacques Prévert (Inventaire)

Listes avec raton laveur

Le contenu d'une liste n'est vraiment pas limité quant aux types de contenus. On peut, sans problème, mélanger les types de variable que l'on y introduit.

Dans l'interpréteur Python, frappe les commandes:

>>> listeZ = [1,"papillon",3.14, ["a",2]]
>>> print listeZ
>>> print listeZ[3]
>>> print listeZ[3][1]

  • Quel est le résultat?
  • Comment accéder au premier élément de la sous-liste 1, dans la superListe?

Une histoire de poupées russes

Une sous-liste peut-elle être formée de sous-sous-listes?

  •  Les listes fonctionnent comme des poupées russes.

poupees russesQuand cette imbrication de sous-listes s'arrête-t-elle?

  • Théoriquement, il n'y a pas de limite. Le nombre de niveaux ne pose pas de problème à un ordinateur. Mais pour un humain, il devient vite difficile de gérer des listes à plus de deux ou trois sous-niveaux.

Exercice pour tordre les neurones...

Dans l'interpréteur Python, frappe les commandes suivantes:

>>> liste1 = [[[[1],2],3],4]
>>> print liste1
>>> print liste1[0]
>>> print liste1[0][1]
>>> print liste1[0][0]
>>> print liste1[0][0][1]
>>> print liste1[0][0][0][0]

  • Peux-tu interpréter chacun des résultats obtenus?

Quand tu es capable de construire une liste contenant divers types de composants et différentes niveaux d'imbrication, passe à la page suivante. Vers la page suivante Page suivante


Dernière modification 18/08/2016 Test dans /info ...