Python | Вычтите два элемента списка, если элемент в первом списке больше

Python | Вычтите два элемента списка, если элемент в первом списке больше

#Python


Если даны два списка, если элемент в первом списке больше, чем элемент во втором списке, то вычтите его, иначе верните только элемент первого списка.


Примеры:

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]

Метод 1: Простой подход заключается в одновременном обходе обоих списков, и если элемент в первом списке больше, чем элемент во втором списке, то вычтите его, иначе, если элемент в первом списке меньше, чем элемент во втором списке, затем верните элемент только первый список.


# Python-код для вычитания первого элемента

# список больше, чем элемент во втором списке,

# иначе мы выводим элемент первого списка.

  

# Инициализация списка ввода

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) 

Выход:

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

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

Метод 2: Используя zip() мы вычитаем, если элемент в первом списке больше, чем элемент во втором списке, иначе мы выводим элемент из первого списка.


# Python-код для вычитания первого элемента

# список больше, чем элемент во втором списке,

# иначе мы выводим элемент первого списка.

  

# Инициализация списка ввода

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

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

  

# используя zip ()

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) 

Выход:

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

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

Метод 3: Использование списка понимания.


# Python-код для вычитания первого элемента

# список больше, чем элемент во втором списке,

# иначе мы выводим элемент первого списка.

  

# Инициализация списка ввода

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)

Выход:

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

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

Способ 4: Использование numpy() для выполнения вышеуказанной задачи.


# Python-код для вычитания первого элемента

# список больше, чем элемент во втором списке,

# иначе мы выводим элемент первого списка.

  

   

import numpy as np

  

# Инициализация списка ввода

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

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

   

# используя NumPy

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

   

# Вывод на печать

print("Original list are :")

print(Input1)

print(Input2)

  

print("\nOutput list is")

print(Output) 

Выход:

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

Output list is
[10 20 30 10 30 50]


Report Page