为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐8265434 2024-01-15 15:37:03
我对 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']
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

由于您想要具有最大值的整个子列表,因此请使用 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']


查看完整回答
反对 回复 2024-01-15
?
慕神8447489

TA贡献1780条经验 获得超1个赞

您可以定义自己的 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 


查看完整回答
反对 回复 2024-01-15
  • 2 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信