我正在尝试循环列表列表,然后返回每个子列表的最大值。
例如:list = [[1,2,3],[4,5,6],[7,8,9]]
我想要的是一个带有值的新列表:[3,6,9]
我不允许使用任何导入或map()
,max()
内置。 我想过对每个子列表进行排序,然后返回最后一个索引,但我不知道如何编码。
使用max
函数,这可以相当简单地作为列表理解来完成:
[max(sublist) for sublist in list]
如果不能直接使用内置的max
,有几种方法可以使用其他函数手动执行此操作:
按照您在问题中的建议对每个子列表进行排序:
[sorted(sublist)[-1] for sublist in list]
(-1
表示列表的最后一个元素(
或者只是使用for
循环和if
语句手动实现max
:
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
函数的工作原理是保持运行最大值并将列表中的每个元素与该最大值进行比较。