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))]
这是一个双重任务的挑战。首先,在listsecond
中,我需要识别一个具有最大值的元组(而位置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>)进行比较,这并不理想。