Nuxtstop

For all things nuxt.js

Python : Manipulation des listes

Python : Manipulation des listes
13 0

Le cours accéléré Python est gratuit et sera publié ici sur dev.to. Je publierai un nouvel article tous les deux jours environ. Pour ne rien manquer, vous pouvez me suivre sur twitter : Suivez @EricLeCodeur

Type de variable : List et Tuple

Les listes permettent de stocker plusieurs items dans une seule variable.

En Python le type de cette variable est “List”. Je vais utiliser ce terme tout au long de cette section

Il arrive souvent que vous deviez stocker plusieurs informations de même nature dans plusieurs variables. Voici un exemple :

user1 = "Mike"
user2 = "Paul"
user3 = "John"
user4 = "Peter"
Enter fullscreen mode Exit fullscreen mode

Quoique fonctionnel ce code n’est pas du tout efficace et sera extrêmement difficile à créer, manipuler et maintenir.

C’est pourquoi Python met à notre disposition un type de variable appelé “List”.

Les “List” permettent de stocker les informations de même nature.

Créer une variable List

Pour créer une "List" vide il suffit d’utiliser les crochets []. Python va automatiquement créer une variable de type "List"

users = []
Enter fullscreen mode Exit fullscreen mode

Il est possible d’assigner des valeurs à la "List" lors de sa création :

users = ["Mike", "Paul", "John", "Peter"]
Enter fullscreen mode Exit fullscreen mode

Chaque valeur est séparée par une virgule.

Une "List" peut contenir des variables de différent type.

user_info = ["Mike", 32, True]
            # Str, Int, Bool
Enter fullscreen mode Exit fullscreen mode

Ajouter et supprimer un item

Une fois la variable de type List créé, il est possible d’ajouter un item avec la fonction append()

users.append("Martin")

# ["Mike", "Paul", "John", "Peter", "Martin"]
Enter fullscreen mode Exit fullscreen mode

Il est possible d’enlever un item avec l’instruction “del”

users = ["Mike", "Paul", "John", "Peter"]

del users[1]

print(users)
# ['Mike', 'John', 'Peter']
Enter fullscreen mode Exit fullscreen mode

Nombre d’items dans une List

La fonction “len()” permet de savoir combien d’items il y a dans une List

users = ["Mike", "Paul", "John", "Peter"]

nb_user = len(users)

print(nb_user)
# 4
Enter fullscreen mode Exit fullscreen mode

Récupérer et modifier un item en particulier

Comme pour une variable de type String, un élément de votre variable List peut être accessible via son numéro de position.

users = ["Mike", "Paul", "John", "Peter"]
           0       1       2       3

print(users[2])
# John
Enter fullscreen mode Exit fullscreen mode

Un item de la List peut également être modifié grâce à son numéro de position

users = ["Mike", "Paul", "John", "Peter"]

users[0] = "Sunny"

print(users[0])
# Sunny
Enter fullscreen mode Exit fullscreen mode

Le numéro de position -1 permet de récupérer le dernier item d’une List

print(users[-1])
# Peter
Enter fullscreen mode Exit fullscreen mode

Récupérer seulement une partie d’une List

Voici la syntaxe qui permet de récupérer une partie d’une List

list[debut:fin]

Voici un exemple

users = ["Mike", "Paul", "John", "Peter"]
#          0        1       2       3

some_users = users[1:3]
print(some_users)
# ["Paul", "John"]
Enter fullscreen mode Exit fullscreen mode

Dans cet exemple, la List “users” retournera la position 1 à 3. Pour rappel, la première position est zéro et la position de fin n’est jamais incluse dans le résultat.

Si la position de début n’est pas spécifiée, Python utilisera la position zéro.

Si la position de fin n’est pas spécifié, Python utilisera la dernière position

users = ["Mike", "Paul", "John", "Peter"]
#          0       1       2        3     

first_users = users[:3]
print(first_users)
# ["Mike", "Paul", "John"]

last_users = users[2:]
print(last_users)
# ["John", "Peter"]
Enter fullscreen mode Exit fullscreen mode

Récupérer toute la List

Il est possible de récupérer une List dans son entièreté et du coup effectuer une copie. Voici la syntaxe

users = ["Mike", "Paul", "John", "Peter"]

copy_users = users[:]

print(copy_users)
# ["Mike", "Paul", "John", "Peter"]
Enter fullscreen mode Exit fullscreen mode

Créer une List à partir d’une String

La fonction split() permet de créer une variable List à partir d’une variable String.

colors = "red, green, blue".split()

print(colors)
# ['red', 'green', 'blue']
Enter fullscreen mode Exit fullscreen mode

Par défaut, la fonction split() utilise la virgule “,” comme caractère séparateur

Voici un autre exemple avec un autre séparateur :

colors = "red - green - blue".split(" - ")

print(colors)
# ['red', 'green', 'blue']
Enter fullscreen mode Exit fullscreen mode

Joindre deux variables List

Il est possible d’unir deux List en une seule grande List

colors1 = ['red', 'blue']
colors2 = ['green', 'yellow']
colors3 = colors1 + colors2

print(colors3)
# ['red', 'blue', 'green', 'yellow']
Enter fullscreen mode Exit fullscreen mode

Tuples

Les Tuples sont un type de variable en Python. Ce type de variable est très semblable au type List mais avec quelques différences :

  • Une fois assigné, un Tuple ne peut être modifié (lecture seulement)
  • La performance des Tuples est légèrement supérieure au List
  • Un Tuple utilise les parenthèses () à la place des crochets []

Voici un exemple de List vs Tuple

# List
colors = ["red", "green", "blue"]

# Tuple
colors = ("red", "green", "blue")
Enter fullscreen mode Exit fullscreen mode

Par convention, si votre liste de données est fixe et en lecture seulement alors mieux vaut la placer dans un Tuple. Sinon, une variable de type "List" fera l’affaire.

Faire une boucle dans une List

Il est possible de lire chaque item d’une "List" et d’exécuter du code. Pour ce faire il faut utiliser l’instruction “for”

items = ["iPhone", "iPad", "iWatch"]

for item in items:
    print(item)

# iPhone
# iPad
# iWatch
Enter fullscreen mode Exit fullscreen mode

La syntaxe de la boucle est relativement simple “for item in items:” pourrait se traduire avec : Pour chaque “item” dans ma List “items” exécuter le bloc de code qui suit les “:”

”item” Le nom de cette variable pourrait être n’importe quoi. C’est juste une référence pour rendre la lecture du code plus simple. Voici un exemple avec un autre nom.

for product in items:
    print(product)
Enter fullscreen mode Exit fullscreen mode

Nom différent mais même résultat.

Il est également possible d’obtenir un index qui représente la position de l’item dans la "List". Pour ce faire vous devez utiliser la fonction enumerate()

items = ["iPhone", "iPad", "iWatch"]

for index, item in enumerate(items):
    print(index, item)

# 0 iPhone
# 1 iPad
# 2 iWatch
Enter fullscreen mode Exit fullscreen mode

La fonction enumerate() retourne deux valeurs soit l’index et l’item en tant que tel.

Boucle avec une seule ligne de code

Il existe une syntaxe propre à Python qui permet de faire cela : List Comprehension

Voici un exemple de List Comprehension

items = ["iPhone", "iPad", "iWatch"]

print_items = [print(item) for item in items]
Enter fullscreen mode Exit fullscreen mode

List Comprehension avec une condition

items = ["iPhone", "", "iPad", "iWatch"]

items = ["iPhone", "", "iPad", "iWatch"]

print_items = [print(item) for item in items if item == "iPhone"]
Enter fullscreen mode Exit fullscreen mode

Conclusion

C'est tout pour aujourd'hui, je publierai un nouvel article tous les deux jours environ. Pour être sûr de ne rien rater vous pouvez me suivre sur twitter : Suivre @EricLeCodeur