Python | Soustraire deux éléments de la liste si l’élément de la première liste est supérieur

Étant donné deux listes, si l’élément de la première liste est supérieur à l’élément de la deuxième liste, puis soustrayez-le, sinon retournez l’élément de la première liste uniquement.
Exemples:

Input:
l1 = [10, 20, 30, 40, 50, 60]
l2 = [60, 50, 40, 30, 20, 10]
Output:
[10, 20, 30, 10, 30, 50]

Input:
l1 = [15, 9, 10, 56, 23, 78, 5, 4, 9]
l2 = [9, 4, 5, 36, 47, 26, 10, 45, 87]
Output:
[6, 5, 5, 20, 23, 52, 5, 4, 9]

Méthode 1 : L’approche naïve consiste à parcourir les deux listes simultanément et si l’élément de la première liste est supérieur à l’élément de la deuxième liste, puis soustrayez-le, sinon si l’élément de la première liste est inférieur à l’élément de la deuxième liste, alors retournez l’élément de la première liste uniquement .

Python3

Input1 = [10, 20, 30, 40, 50, 60]

Input2 = [60, 50, 40, 30, 20, 10]

Output = []

for i in range(len(Input1)):

    if Input1[i] > Input2[i]:

        Output.append(Input1[i] - Input2[i])

    else:

        Output.append(Input1[i])

        

print("Original list are :")

print(Input1)

print(Input2)

print("\nOutput list is")

print(Output)

Production:

Original list are :
[10, 20, 30, 40, 50, 60]
[60, 50, 40, 30, 20, 10]

Output list is
[10, 20, 30, 10, 30, 50]

Méthode 2 : En utilisant zip(), nous soustrayons si l’élément de la première liste est supérieur à l’élément de la deuxième liste, sinon nous produisons l’élément de la première liste.

Python3

Input1 = [10, 20, 30, 40, 50, 60]

Input2 = [60, 50, 40, 30, 20, 10]

Output =[e1-e2 if e1>e2 else e1 for (e1, e2) in zip(Input1, Input2)]

print("Original list are :")

print(Input1)

print(Input2)

print("\nOutput list is")

print(Output)

Production:

Original list are :
[10, 20, 30, 40, 50, 60]
[60, 50, 40, 30, 20, 10]

Output list is
[10, 20, 30, 10, 30, 50]

Méthode 3 : Utilisation de la compréhension de liste.

Python3

Input1 = [10, 20, 30, 40, 50, 60]

Input2 = [60, 50, 40, 30, 20, 10]

Output = [Input1[i]-Input2[i] if Input1[i] > Input2[i] \

          else Input1[i] for i in range(len(Input1))]

print("Original list are :")

print(Input1)

print(Input2)

print("\nOutput list is")

print(Output)

Production:

Original list are :
[10, 20, 30, 40, 50, 60]
[60, 50, 40, 30, 20, 10]

Output list is
[10, 20, 30, 10, 30, 50]

Méthode 4 : Utilisation de numpy() pour terminer la tâche ci-dessus.

Python3

 

import numpy as np

Input1 = np.tableau([10, 20, 30, 40, 50, 60])

Input2 = np.tableau([60, 50, 40, 30, 20, 10])

 

Output = np.where(Input1 >= Input2, Input1 - Input2, Input1)

 

print("Original list are :")

print(Input1)

print(Input2)

print("\nOutput list is")

print(Output)

Production:

Original list are :
[10 20 30 40 50 60]
[60 50 40 30 20 10]

Output list is
[10 20 30 10 30 50]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller en haut