假设我有一个元组列表: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的建议。
答案 0 :(得分:8)
最恐怖的方法:
result = max(pairs, key=m)
答案 1 :(得分:-2)
你无法做到
max(成对p的[m(p)])