📜  Python|矩阵列的最小差异

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

Python|矩阵列的最小差异

这篇特别的文章重点讨论了一个在竞争和日常编程中都有用的问题。有时,与下一个列表相比,我们需要获得相似索引之间的最小差异。返回该索引中相似元素之间的最小差异。让我们讨论可以执行此任务的某些方式。

方法 #1:使用min() + abs() + zip() + 列表理解
这个特殊问题也可以使用上述 4 个操作的组合来解决。这里 zip函数完成了配对列表和配对相似索引的双重任务,由 abs函数计算,然后使用 min函数找到最小值,所有这些都受列表理解的限制。

# Python3 code to demonstrate
# Minimum Difference in Matrix Columns
# using min() + abs() + zip() + list comprehension
  
# initializing list 
test_list = [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
  
# printing original list 
print("The original list : " + str(test_list))
  
# using min() + abs() + zip() + list comprehension
# Minimum Difference in Matrix Columns
res = [min(abs(i - j) for i, j in zip(*ele)) for ele in zip(test_list, test_list[1:])]
  
# print result
print("The minimum difference sublist : " + str(res))
输出 :
The original list : [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
The minimum difference sublist : [1, 3, 2]

方法#2:使用min() + map() + abs + zip()
这个任务也可以通过以上函数的组合来实现,另外还有一个map函数,执行abs操作绑定到整个列表的任务。

# Python3 code to demonstrate
# Minimum Difference in Matrix Columns
# using min() + map() + abs + zip()
  
# initializing list 
test_list = [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
  
# printing original list 
print("The original list : " + str(test_list))
  
# using min() + map() + abs + zip()
# Minimum absolute difference list of list
res = [min(map(abs, (i - j for i, j in zip(x, y)))) for x, y in zip(test_list, test_list[1:])]
  
# print result
print("The minimum difference sublist : " + str(res))
输出 :
The original list : [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
The minimum difference sublist : [1, 3, 2]