📜  Python|列表的最大绝对差列表

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

Python|列表的最大绝对差列表

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

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

# Python3 code to demonstrate
# Maximum absolute difference list of list
# using max() + 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 max() + abs() + zip() + list comprehension
# Maximum absolute difference list of list
res = [max(abs(i - j) for i, j in zip(*ele))
       for ele in zip(test_list, test_list[1:])]
  
# print result
print("The maximum difference sublist : " + str(res))
输出 :
The original list : [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
The maximum difference sublist : [3, 6, 8]

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

# Python3 code to demonstrate
# Maximum absolute difference list of list
# using max() + 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 max() + map() + abs + zip()
# Maximum absolute difference list of list
res = [max(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 maximum difference sublist : " + str(res))
输出 :
The original list : [[3, 4, 5], [4, 6, 8], [1, 9, 2], [3, 7, 10]]
The maximum difference sublist : [3, 6, 8]