Python dispose d'un excellent type de liste intégré nommé "list". Les littéraux de liste sont écrits entre crochets [ ]. Les listes fonctionnent de la même manière que les chaînes de caractères : utilisez la fonction len() et des crochets [ ] pour accéder aux données, le premier élément ayant l'index 0. Consultez la documentation officielle de la liste python.org.
colors = ['red', 'blue', 'green'] print(colors[0]) ## red print(colors[2]) ## green print(len(colors)) ## 3

Une attribution avec un = sur une liste ne crée pas de copie. Au lieu de cela, l'affectation fait que les deux variables pointent vers la liste unique en mémoire.
b = colors ## Does not copy the list

La liste vide est simplement une paire vide de crochets [ ]. Le signe "+" fonctionne pour ajouter deux listes, donc [1, 2] + [3, 4] donne [1, 2, 3, 4] (comme + avec les chaînes).
FOR et IN
Les constructions *for* et *in* de Python sont extrêmement utiles, et nous allons commencer par les utiliser avec des listes. La construction *for* -- for var in list -- permet d'examiner facilement chaque élément d'une liste (ou d'une autre collection). N'ajoutez pas et n'en supprimez pas de la liste lors de l'itération.
squares = [1, 4, 9, 16] sum = 0 for num in squares: sum += num print(sum) ## 30
Si vous savez quel type d'élément se trouve dans la liste, utilisez un nom de variable dans la boucle qui capture cette information, tel que "num", "name" ou "url". Étant donné que le code Python ne possède pas d'autre syntaxe pour vous rappeler les types, vos noms de variables sont un moyen essentiel pour vous de garder un œil sur la situation. (Ceci est un peu trompeur. À mesure que vous vous familiariserez avec Python, vous verrez des références Des suggestions de type, qui vous permettent d'ajouter d'informations à vos définitions de fonction. Python n'utilise pas ces suggestions de types lors de son exécution vos programmes. Ils sont utilisés par d'autres programmes tels que les IDE (environnements de développement intégrés) et Des outils d'analyse statiques tels que des lints et des vérificateurs de type pour vérifier si vos fonctions sont appelées avec des arguments compatibles.)
La construction *in* en elle-même est un moyen simple de vérifier si un élément apparaît dans une liste (ou une autre collection) (value in collection). Elle vérifie si la valeur se trouve dans la collection et renvoie la valeur "True/False".
list = ['larry', 'curly', 'moe'] if 'curly' in list: print('yay') ## yay
Les constructions for/in sont très couramment utilisées dans le code Python et fonctionnent sur des types de données autres que des listes. Il vous suffit donc de mémoriser leur syntaxe. Vous pouvez avoir des habitudes dans d'autres langages où vous commencez à itérer manuellement une collection, alors que dans Python, il vous suffit de l'utiliser.
Vous pouvez également utiliser for/in pour travailler sur une chaîne. La chaîne agit comme une liste de ses caractères. for ch in s: print(ch) affiche donc tous les caractères d'une chaîne.
Plage
La fonction range(n) donne les nombres 0, 1, ... n-1, et plage(a, b) renvoie a, a+1, ... b-1 -- jusqu'au dernier nombre (non inclus). La combinaison des fonctions "for-loop" et "range()" vous permet de créer une boucle "For" numérique traditionnelle:
## print the numbers from 0 through 99 for i in range(100): print(i)
Il existe une variante xrange() qui évite le coût de création de la liste complète pour les cas sensibles aux performances (dans Python 3, range() aura un comportement de performances satisfaisant et vous pouvez oublier xrange()).
Boucle "while"
Python dispose également de la boucle "while-loop" standard, et les instructions *break* et *continue* fonctionnent comme en C++ et Java, ce qui modifie le cours de la boucle la plus interne. Les boucles for/in ci-dessus résolvent le cas courant d'itération de chaque élément d'une liste, mais la boucle "while" vous donne un contrôle total sur les numéros d'index. Voici une boucle "while" qui accède à chaque troisième élément d'une liste:
## Access every 3rd element in a list i = 0 while i < len(a): print(a[i]) i = i + 3
Lister les méthodes
Voici d'autres méthodes de liste courantes.
- list.append(elem) : ajoute un seul élément à la fin de la liste. Erreur courante: ne renvoie pas la nouvelle liste, modifie simplement la liste d'origine.
- list.insert(index, elem) : insère l'élément à l'index donné, en décalant les éléments vers la droite.
- list.extend(list2) ajoute les éléments de list2 à la fin de la liste. L'utilisation de + ou += sur une liste est similaire à l'utilisation d'Extend().
- list.index(elem) : recherche l'élément donné à partir du début de la liste et renvoie son index. Génère une erreur ValueError si l'élément n'apparaît pas (utilisez "in" pour vérifier sans valeur ValueError).
- list.remove(elem) : recherche la première instance de l'élément donné et la supprime (une erreur ValueError est générée s'il n'est pas présent).
- list.sort() : trie la liste à sa place (ne la renvoie pas). Il est préférable d'utiliser la fonction triée() présentée ci-après.
- list.reverse() : inverse la liste en place (ne la renvoie pas)
- list.pop(index) : supprime et renvoie l'élément au niveau de l'index donné. Renvoie l'élément le plus à droite si l'index est omis (à peu près l'inverse de la fonction "append()").
Notez qu'il s'agit de *méthodes* sur un objet de liste, tandis que len() est une fonction qui utilise la liste (ou la chaîne ou autre) comme argument.
list = ['larry', 'curly', 'moe'] list.append('shemp') ## append elem at end list.insert(0, 'xxx') ## insert elem at index 0 list.extend(['yyy', 'zzz']) ## add list of elems at end print(list) ## ['xxx', 'larry', 'curly', 'moe', 'shemp', 'yyy', 'zzz'] print(list.index('curly')) ## 2 list.remove('curly') ## search and remove that element list.pop(1) ## removes and returns 'larry' print(list) ## ['xxx', 'moe', 'shemp', 'yyy', 'zzz']
Erreur courante: notez que les méthodes ci-dessus ne *renvoient* pas la liste modifiée. Elles modifient simplement la liste d'origine.
list = [1, 2, 3] print(list.append(4)) ## NO, does not work, append() returns None ## Correct pattern: list.append(4) print(list) ## [1, 2, 3, 4]
Création de listes
Une méthode courante consiste à commencer une liste par la liste vide [], puis à utiliser la fonction "append()" ou "expand()" pour y ajouter des éléments:
list = [] ## Start as the empty list list.append('a') ## Use append() to add elements list.append('b')
Répertorier les segments d'application
Les segments d'application fonctionnent sur les listes de la même manière que les chaînes et peuvent également être utilisés pour modifier des sous-parties de la liste.
list = ['a', 'b', 'c', 'd'] print(list[1:-1]) ## ['b', 'c'] list[0:2] = 'z' ## replace ['a', 'b'] with ['z'] print(list) ## ['z', 'c', 'd']
Exercice: list1.py
Pour vous entraîner à utiliser cette section, essayez les problèmes de list1.py qui n'utilisent pas le tri (dans les exercices de base).