在不使用内置函数的情况下返回子列表的最小/最大值?

我对 python 比较陌生,并且对使用子列表查找 int 最大/最小值有点困惑。下面的例子

首先,我使用的数据集是一个以列表为元素的列表。它看起来像 - [[John, Smith, 15], [Yu, Harold, 16]] 等。我无法从列表中获取 INT 作为最大值或最小值。我尝试过以下方法

def get_largest_sale(ret_data):
        return max(ret_data)

并获取最大值,但使用字符串而不是理想的整数。我将如何对其进行编码,以便将其解释为:“获取列表/子列表中的最大数值?” 不返回字符串或其他不完整的数字?谢谢。我也尝试过 for 循环,但不够精通,无法创造性地找到使用它的方法。

编辑 - 输入将是

[['Daniel', 'Cochran', '274000'], ['Franklin', 'Smith', '199200'], ['Miguel', 'Espinoza', '252000'], ['Joseph', 'Miller', '610300']

由于 Joseph 具有最高的数值,因此理想情况下的输出为:

['Joseph', 'Miller', '610300']


慕姐8265434
浏览 58回答 2
2回答

动漫人物

由于您想要具有最大值的整个子列表,因此请使用 key 函数max:def get_largest_sale(ret_data):    return max(ret_data, key=lambda sub: int(sub[2]))>>> get_largest_sale(data)['Joseph', 'Miller', '610300']

慕神8447489

您可以定义自己的 max 函数,如下所示:def max(list):    max=0   for i in range (len(list)):      if list[i][2]>max: //because in each of your list elements, the age is in third position         max=list[i][2]   return max 我总是喜欢重新定义事件最简单的函数,以确保它能达到我想要的效果[编辑]试试这个,它应该可以工作并返回你想要的def max(list):    max=['','',0]   for i in range (len(list)):      if list[i][2]>max[2]: //because in each of your list elements, the age is in third position         max=list[i]   return max 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python