📜  Python – 具有最大差异的双元素行

📅  最后修改于: 2022-05-13 01:55:51.833000             🧑  作者: Mango

Python – 具有最大差异的双元素行

有时,在使用Python Matrix 时,我们可以让 Matrix 及其元素成为只有两个元素的行,我们可能希望获得具有最大差异的元素的行。这可以在许多领域中应用。让我们讨论可以执行此任务的某些方式。

方法#1:使用循环
这是可以执行此任务的蛮力方式。在此我们对每一行进行迭代并计算最大值并在每次迭代时存储具有较大差异的行。

# Python3 code to demonstrate 
# Dual Element row with Maximum difference
# using loop
  
# Initializing list
test_list = [[5, 10], [1, 3], [4, 11], [1, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Dual Element row with Maximum difference
# using loop
max_till = -float('inf')
res = []
for sub in test_list:
    if abs(sub[0] - sub[1]) > max_till:
        max_till = abs(sub[0] - sub[1])
        res = sub
  
# printing result 
print ("The maximum difference row is : " + str(res))
输出 :
The original list is : [[5, 10], [1, 3], [4, 11], [1, 2]]
The maximum difference row is : [4, 11]

方法 #2:使用max() + lambda + 列表推导
上述功能的组合可用于执行此任务。在此,我们使用 max() 和 lambda函数执行获取最大值的任务,列表推导用于执行迭代任务。

# Python3 code to demonstrate 
# Dual Element row with Maximum difference
# using max() + lambda + list comprehension
  
# Initializing list
test_list = [[5, 10], [1, 3], [4, 11], [1, 2]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Dual Element row with Maximum difference
# using max() + lambda + list comprehension
res = max(test_list, key = lambda ele: abs(ele[0] - ele[1]))
  
# printing result 
print ("The maximum difference row is : " + str(res))
输出 :
The original list is : [[5, 10], [1, 3], [4, 11], [1, 2]]
The maximum difference row is : [4, 11]