如何获取列表列表中x位置的最大值,并将其与位置0中的数据一起返回?我当前列表的一个示例粘贴在下面。我在考虑制作另一个包含我想要的元素的列表,然后对其进行排序,但我猜这样做会更好
当前正在输出的数据
[['Name1', '1 (5)', '0', '0', '0', 'TeamPos', 'TeamA'],
['Name2', '13 (0)', '5', '4', '0', 'TeamPos', 'TeamB'],
['Name3', '4 (1)', '2', '1', '0', 'TeamPos', 'TeamC']]
预期的输出是-假设我想要索引2中所有列表的最大值:
Name2, 5
编辑:尝试将数据从第一个函数传入slider建议的函数,但我得到NameError:未定义名称'data'。我也尝试过在调用get\u max时传递,但这也不起作用
def get_max(lst, i, key_func=None):
data = squads()
if not key_func: key_func = lambda x: x[i]
res = max(lst, key=key_func)
return [res[0], res[i]]
print(get_max(data,2, lambda x: int(x[2])))
另外,如果我尝试下面的方法,然后运行它,就会得到以下错误“Position arguement follows keyword argument”。然后,我尝试在声明函数时改变值的声明顺序,但结果很混乱,特别是当我没有真正了解函数的工作方式时
打印(get_max(data=squads(),2,lambda x:int(x[2]))
分类比较合适。假设你对第二栏感兴趣:
请记住,
sorted
按字典顺序对字符串排序。如果要将列视为数字,请在排序时将它们转换为数字:也可以将^{} 与
key
一起使用:get_max
的工作方式是指定二维列表、要检索的索引和要传递给max
的键函数。如果没有提供key函数,则使用默认值(特别是lambda x: x[i]
)。你知道吗key函数应该定义要考虑哪个列来确定2d列表的最大值。你知道吗
编辑
您在
data
函数内部定义get_max
,但在函数外部使用它。将此更改为以下内容:如果数据非常大,您可能需要隔离感兴趣的列,并执行max的“惰性”运行:
这不会生成中间列表(或其列表列表)。你知道吗
正如@Austin所指出的,max()可能不会提供您想要的结果,因为这些项是字符串,在这种情况下,您可能需要用
int()
预先组织惰性列:col_of_interest = ((int(lst[target]), idx) for idx, lst in enumerate(list_of_lists))
相关问题 更多 >
编程相关推荐