如何在同一索引中查找最多两个列表



我正试图在同一索引中找到两个不同列表的最大点。示例:

l1 = [11,4,7,9]
l2 = [2,10,9,6]

这个例子的结果是l1和l2都在它们的第三索引处最大化(其中l1=7和l2=9(。

有没有现有的功能可以做到这一点?如果没有,我将如何处理。

您确实需要更好地将您的意思/期望定义为;两者都被最大化";概念

例如,值对可以被视为笛卡尔平面中的x,y坐标,距离原点最远的欧氏距离表示最大化概念:

l1 = [11,4,7,9]
l2 = [2,10,9,6]
i = max(range(len(l1)),key=lambda i:l1[i]**2+l2[i]**2)
print(i)
2

这会选择第三个索引,但在这种特殊情况下,值的简单和也是如此

您可以编写一个简单的argmax函数(如本答案所示(:

def argmax(iterable):
return max(enumerate(iterable), key=lambda x: x[1])[0]

并称之为成对和:

argmax(map(sum, zip(l1, l2)))
# 2

关于utils:的一些文档

  • enumerate
  • max
  • map
  • sum
  • zip

最新更新