从元组列表中选择特定元组的大多数Pythonic方法

时间:2014-12-20 06:03:04

标签: python list

假设我有一个元组列表:pairs = [(4,5),(2,6),(6,9),(8,7),(1,1)]

我有一个函数def m(pair): return pair[0]**2 + pair[1]**2

我试图找到pairs的元素m返回最大输出。具体来说,我想尽可能地以蟒蛇的方式做到这一点。

我很清楚,我可以通过循环pairs和变量来存储看到的最大产生对,但这感觉不够优雅。我觉得这应该用列表理解来完成。很明显,我可以通过声明temp = [m(p) for p in pairs]然后选择pairs[temp.index(max(temp))]来找到我想要的那对,但我不想再创建另一个列表,只要再次列出一对 - 再次,这感觉不够优雅。

寻找pythonic的建议。

2 个答案:

答案 0 :(得分:8)

最恐怖的方法:

result = max(pairs, key=m)

答案 1 :(得分:-2)

你无法做到

  

max(成对p的[m(p)])