Python 如何从列表中同时获取最大值和最小值
例如,我有两个元组Python 如何从列表中同时获取最大值和最小值,python,compare,max,Python,Compare,Max,例如,我有两个元组 tup1 = (200,(b,5),(a,5)) tup2 = (500,(b,7),(a,3)) 首先,我想找到第一个元素最高的元组,但如果它们相同,我想找到第二个元素最低的元组。但是如果前两个元素等于另一个元组的前两个元素,那么我必须得到第三个元素最小的元组。如何才能正确地执行此操作 对于本例,结果必须是tup_end=(500,(b,7),(a,3)),因为tup2的第一个元素大于tup的第一个元素 如果 tup1=(200,(b,5),(a,5)) tup2=(20
tup1 = (200,(b,5),(a,5))
tup2 = (500,(b,7),(a,3))
首先,我想找到第一个元素最高的元组,但如果它们相同,我想找到第二个元素最低的元组。但是如果前两个元素等于另一个元组的前两个元素,那么我必须得到第三个元素最小的元组。如何才能正确地执行此操作
对于本例,结果必须是tup_end=(500,(b,7),(a,3))
,因为tup2的第一个元素大于tup的第一个元素
如果tup1=(200,(b,5),(a,5))
tup2=(200,(b,7),(a,3))
结果必须是
tup_end=(200,(b,5),(a,5))
,因为tup1和tup2的第一个元素相等,但tup1的第二个元素小于tup2的第二个元素使用以下代码:
lst = [2, 6, 8, 4, 3] # example of numeric lst
获取最大值:
print(max(lst)) # printed 8
获取最小值:
print(min(lst)) # printed 2
不要忘记使用int(lst)
来确保它由数值组成
您可以使用上述功能帮助您轻松完成练习
也适用于元组您可以使用min(…,key=function)
函数创建第一个值为负值的项,然后您必须找到最小的-first
和最小的其他值-而不是最大的first
值和最小的其他值-因此您可以使用min()
用于元组中的所有值
def create(item):
first = item[0]
rest = item[1:]
return (-first, *rest)
a = 0
b = 0
tup1 = (200, (b,5), (a,5))
tup2 = (500, (b,7), (a,3))
tup_end = min([tup1, tup2], key=create)
print(tup_end)
tup1 = (200,(b,5),(a,5))
tup2 = (200,(b,7),(a,3))
tup_end = min([tup1, tup2], key=create)
print(tup_end)
结果
(500, (0, 7), (0, 3))
(200, (0, 5), (0, 5))
到目前为止你试过什么?您的示例的预期输出是什么?您不能循环并检查所有这些吗?请添加一个更完整的示例和预期输出
tup\u end=min([tup1,tup2],key=function\u which\u create\u object\u to\u compare)
?否,因为如果第一个元素不同,我希望接收第一个元素最大的元组