2017-04-19 61 views
-2

我有2个列表,其中一个包含到特定点的距离,另一个包含在二维空间中分布不同值的方法。另一个列表包含以相同顺序映射到这两个列表的属性。
例如list1 = [a, b, c, d]
list2 = [10, 12, 45, 10] - >每个到特定点的距离
list3 = [12.5, 17.5, 1.87, 34.4] - >与a,b,c和d中的每一个有关的值的均值。
根据2个参数找到列表中的最佳值

我想根据list2中的最小距离和列表3中的最高平均值返回list1的最佳值。但我不希望根据任何优先级对它们进行排序(列表1先列出,然后列出2或者列出反之亦然)。我想要返回列表2和列表3中值的组合。对列表进行排序并不是做到这一点的方法。我尝试对值进行规范化并添加它们,但我不知道这是否是正确的方法。返回相关列表索引的最佳方式是什么?

回答

0

您可以压缩三个列表为元组的一个列表,然后利用每个元组的第一个元素作为关键取回最大的元组:

larges = max(zip(list1, list2, list3), key=lambda x:x[0]) 
#('d', 10, 34.4) 
相关问题