Tuto Python : rechercher et remplacer une valeur dans une liste

Table des matières

Introduction

  1. Comment remplacer une chaîne de caractères, un nombre entier dans une liste
  2. Liste remplaçant par Utilisation de map() + lambda + replace()
  3. Remplacer un entier dans la liste Python 
  4. Python Remplacer l'article dans la liste : Utilisation d'un For Loop 
  5. Exercice 

5.1. Exercice 1

5.2. Exercice 2

  1. Solution

6.1. Exercice 1

6.2. Exercice 2

Conclusion

Introduction :

Il y a trois façons de remplacer un élément dans une liste Python. Vous pouvez utiliser l'indexation de la liste ou une boucle for pour remplacer un élément. Si vous voulez créer une nouvelle liste basée sur une liste existante et y apporter une modification, vous pouvez utiliser une compréhension de liste.

Vous pouvez décider de modifier une valeur dans une liste. Supposons que vous élaboriez un menu pour un restaurant. Vous remarquez peut-être que vous avez mal orthographié l'un des éléments du menu. Pour corriger cette erreur, vous devrez modifier un élément existant dans la liste.

1. Comment remplacer une chaîne de caractères, un nombre entier dans une liste :

string en Python est un type de données immuable. Remplacer une chaîne par une autre est une opération régulière dans tout type de développement. La méthode String replace() en Python nous aidera à remplacer une chaîne par une chaîne particulière dans la liste des Strings.

Remplacement de la liste Python :

Si nous voulons remplacer un élément particulier dans la liste Python, nous pouvons utiliser la compréhension de la liste Python. Dans notre cas, il s'agit d'une chaîne de caractères, nous devons donc utiliser la combinaison compréhension de liste + chaîne de caractères replace().

Syntaxe :


liste = ['Python', '5', 'py', '4', 'PHP', '8']
# affichage de la liste
print("liste originale : " + str(liste))
#remplacement
res = [elem.replace('4', '5') for elem in liste]
# print result
print("liste apres replacement : " + str(res))

Résultat d’exécution :

Nous avons défini une liste en Python et nous utilisons ensuite la compréhension de la liste pour remplacer 4 par 5 et renvoyer la nouvelle liste, puis nous avons imprimé la liste.

La méthode Python String replace() remplace une phrase spécifiée par une autre phrase spécifiée.

2. Liste remplaçant par Utilisation de map() + lambda + replace():

Nous pouvons utiliser la combinaison de Python map(), de la fonction lambda et de la fonction String replace() pour remplacer String par une autre chaîne dans la liste Python.

Syntaxe :


liste = ['Python', '5', 'java', '4', 'PHP', '3']
# affichage de la liste
print("liste originale : " + str(liste))
# utilisation de map() + lambda + replace()
res = list(map(lambda st: str.replace(st, "PHP", ".NET"), liste))
print("nouvelle liste : " + str(res))

Dans le code ci-dessus, nous avons défini la liste et utilisé la fonction map() pour remplacer la chaîne PHP par la chaîne .Net, puis nous avons converti cet itérateur en une liste à l'aide de la fonction list().

3. Remplacer un entier dans la liste Python :

Nous pouvons remplacer un entier par un autre entier en utilisant l'opérateur ternaire et la compréhension de liste.

Syntaxe :


liste = [19, 11, 23, 18, 46, 23]
# affichage de la liste
print("liste originale : " + str(liste))
res = [21 if elem == 23 else elem for elem in liste]
print("nouvelle liste : " + str(res))

Résultat d’exécution :

Dans l'exemple ci-dessus, nous avons défini une liste, et nous devons remplacer 23 entiers par 21 entiers.

Si elle trouve plusieurs entiers, elle remplacera tous les nombres par des valeurs spécifiées.

Maintenant, pour faire cela en utilisant la compréhension de liste, nous devons utiliser un opérateur ternaire dans la liste.

Nous avons donc écrit que si vous trouvez 23 dans la liste, alors remplacez-le par 21 et renvoyez la liste.

4. Python Remplacer l'article dans la liste : Utilisation d'un For Loop :

Vous pouvez remplacer les éléments d'une liste en utilisant un Python pour la boucle. Pour ce faire, nous avons besoin de la fonction Python enumerate(). Cette fonction renvoie deux listes : les numéros d'index dans une liste et les valeurs dans une liste. Nous itérons sur ces deux listes avec un seul for loop.

Syntaxe :


prix = [72.95, 72.50, 30.00, 34.95, 100.00]
for index, elem in enumerate(prix):
if elem > 50:
prix[index] = round(prix[index] - (prix[index] * 10 / 100), 2)
print(prix)

Résultat d’exécution :

La valeur "index" enregistre la position d'un article dans l'index. La valeur "elem" est la valeur qui correspond à cette position d'index. La virgule sépare les deux valeurs de liste renvoyées par la méthode enumerate().

La récupération de deux ou plusieurs valeurs à partir d'une méthode ou d'une autre valeur est appelée déballage. Nous avons "déballé" deux listes de la méthode enumerate().

5. Exercice :

5.1. Exercice 1 :

Utilisation de l'indexation des listes :

prix = [99.95, 72.50, 30.00, 29.95, 55.00]

Changer la valeur du premier élément par 104,95

Afficher les résultats

Ajouter 5 à la valeur changer.

5.2.  Exercice 2 :

Remplacer l'article dans la liste par Utilisation de la compréhension d'une liste

Créer un programme qui calcule une réduction de 10% sur les produits plus de 50$

prix = [99.95, 72.50, 30.00, 29.95, 55.00]

6. Solution

6.1. Exercice 1 :

Syntaxe :


prix = [99.95, 72.50, 30.00, 29.95, 55.00]
prix[0] = 104.95
print(prix)
prix[0] = prix[0] + 5
print(prix)

Résultats de l’affichage :

6.2. Exercice 2 :

Syntaxe :


prix = [99.95, 72.50, 30.00, 29.95, 55.00]
nvprix = [round(prix - (prix * 10 / 100), 2) if prix > 50 else prix for prix in prix]
print(nvprix)

Résultats de l’affichage :

Ici, nous construisons un programme qui calcule une remise de 10 % sur tous les produits d'un magasin de vêtements qui valent plus de 50 dollars.

Ensuite, nous définissons une liste de compréhension pour remplacer les articles de notre liste

Cette compréhension de la liste se répète à travers la liste des "prix" et recherche les valeurs supérieures à 50 $. Une remise de 10% est appliquée sur ces articles. Nous arrondissons les valeurs escomptées à deux décimales en utilisant la méthode round().

Une remise de 10 % a été appliquée avec succès à chaque article.

Conclusion

Vous pouvez remplacer les éléments d'une liste Python en utilisant l'indexation de liste, une compréhension de liste, ou une boucle.

Si vous voulez remplacer une valeur dans une liste, la syntaxe d'indexation est la plus appropriée. Pour remplacer plusieurs éléments d'une liste qui répondent à un critère, l'utilisation d'une liste de compréhension est une bonne solution. Bien que les boucles for soient fonctionnelles, elles sont moins pythoniennes que les compréhensions de liste.

Article publié le 08 Mars 2021par Mouhtat Bilal