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]