迭代2d数组,然后返回每个子列表的最大值

时间:2019-10-22 23:35:45

标签: python python-3.x

我试图循环一个列表列表,然后返回每个子列表的最大值。

例如:list = [[1,2,3],[4,5,6],[7,8,9]] 我想要的是一个带有以下值的新列表:[3,6,9]

我不允许使用任何导入或map()max()内置函数。 我本来想对每个子列表进行排序,然后返回最后一个索引,但是我不知道如何编写代码。

1 个答案:

答案 0 :(得分:-1)

使用max函数,可以很容易地将其作为列表理解来完成:

[max(sublist) for sublist in list]

如果您不能直接使用内置的max,则有几种方法可以使用其他功能手动进行:

按照问题中的建议对每个子列表进行排序:

[sorted(sublist)[-1] for sublist in list]

({-1表示列表的最后一个元素)

或者只是使用max循环和for语句手动实现if

def custom_max(sublist):
     maximum = None
     for element in sublist:
         if maximum is None or element > maximum:
             maximum = element
     return maximum

[custom_max(sublist) for sublist in list]

custom_max函数的作用是保持运行的最大值并将列表中的每个元素与该最大值进行比较。