Fea*_*der 11 python function list max python-2.7
所以我有一个包含几个列表的列表,它们首先有三个字符串,然后是一个浮点数,如:
resultlist = [["1", "1", "a", 8.3931], ["1", "2", "b", 6.3231], ["2", "1", "c", 9.1931]]
Run Code Online (Sandbox Code Playgroud)
如何创建一个返回最大值的函数(这里是9.1931)?我试过了
def MaxValue():
max_value = max(resultlist)
return max_value
Run Code Online (Sandbox Code Playgroud)
但这只是给我一个清单.
编辑:另外,我可以通过任何方式得到值来自哪里的索引?喜欢,从哪个子列表?
小智 10
或许比pythonic方式更具功能性:
>>> max(map(lambda x: x[3], resultlist))
9.1931
Run Code Online (Sandbox Code Playgroud)
它首先将结果列表的每个元素映射到数字值,然后找到最大值.
中间数组是:
>>> map(lambda x: x[3], resultlist)
[8.3931000000000004, 6.3231000000000002, 9.1930999999999994]
Run Code Online (Sandbox Code Playgroud)
Gui*_*ijk 10
Numpy 有助于数字嵌套列表。尝试这个:
resultlist = [[3, 2, 4, 4], [1, 6, 7, -6], [5, 4, 3, 2]]
max(resultlist) # yields [5, 4, 3, 2] because 5 is the max in: 3, 1, 5
np.max(resultlist) # yields 7 because it's the absolute max
Run Code Online (Sandbox Code Playgroud)
max()返回第一个元素是所有列表第一个元素的最大值的列表,同时np.max()返回所有嵌套列表中的最大值。
循环遍历外部列表并选择每个子列表的最后一个元素:
def max_value(inputlist):
return max([sublist[-1] for sublist in inputlist])
print max_value(resultlist)
# 9.1931
Run Code Online (Sandbox Code Playgroud)
如果将所有与函数相关的变量保留在范围内(将列表作为参数传递,并且不通过重用变量名来混淆命名空间),这也是最好的.