Python 查找具有最大值的元组

Python 查找具有最大值的元组,python,list,python-2.7,max,Python,List,Python 2.7,Max,鉴于这两份清单: first = [('-2.50', '1.91', '2.03'), ('3.00', '1.83', '2.08')] second = [(('-2.50', 0.889258, 1.069258), ('3.00', 0.931381, 1.021381))] 这是一个双重任务的挑战。首先,在listsecond中,我需要识别一个具有最大值的元组(而位置0处的值:-2.50和3.00必须忽略)。然后,作为第二个任务,我们需要首先输出相应的元组表单列表。因此,它应该导致

鉴于这两份清单:

first = [('-2.50', '1.91', '2.03'), ('3.00', '1.83', '2.08')]
second = [(('-2.50', 0.889258, 1.069258), ('3.00', 0.931381, 1.021381))]
这是一个双重任务的挑战。首先,在list
second
中,我需要识别一个具有最大值的元组(而位置
0
处的值:
-2.50
3.00
必须忽略)。然后,作为第二个任务,我们需要首先输出相应的元组表单列表
。因此,它应该导致:

('-2.50', '1.91', '2.03')
这是因为在第一步中找到的最大值应该是
1.069258
,它位于第一个元组中

我在这里遇到的困难是找到具有最大值的元组(我知道我可以使用
max()
来找到值,但我需要整个元组),对于问题的第二部分,我认为我将使用
if
语句来处理

一个班轮:

>>> first [ max(enumerate(second[0]), key=lambda x: max(x[1][1:] ))[0] ]
('-2.50', '1.91', '2.03')
或:

一艘班轮:

>>> first [ max(enumerate(second[0]), key=lambda x: max(x[1][1:] ))[0] ]
('-2.50', '1.91', '2.03')
或:

第1行:

>>> max(zip(first,second[0]),key=lambda x:max(x[1][1:]))[0]
('-2.50', '1.91', '2.03')
第1行:

>>> max(zip(first,second[0]),key=lambda x:max(x[1][1:]))[0]
('-2.50', '1.91', '2.03')

您希望使用一个键函数来计算每个元组的比较值。您想将元组与第一个元组以外的最大值进行比较,请尝试

>>> max(second[0], key = lambda x: max(x[1:]))
('-2.50', 0.889258, 1.069258)

您希望使用一个键函数来计算每个元组的比较值。您想将元组与第一个元组以外的最大值进行比较,请尝试

>>> max(second[0], key = lambda x: max(x[1:]))
('-2.50', 0.889258, 1.069258)

或者,等效但更简洁地说,
i=max(enumerate(second),key=lambda i\u t:i\u t[1][1:])[0]
。还要注意,您的解决方案最初将浮点(
-inf
)与元组(
t[1:
)进行比较,这并不理想。或者,等效但更简洁地说,
i=max(enumerate(second),key=lambda i\u t:i\u[1:][1:][0]
。还要注意,您的解决方案最初将浮点(
-inf
)与元组(
t[1:][/code>)进行比较,这并不理想。