Python: 从多维列表中获取最大值
Python: Get max value from a multi-dimensional list
我想获取此列表的最大值,但比排序更快。
[[1, 3], [2, 3], [3, 1], [3, 2], [3, 3], [3, 4], [3, 5], [4, 1], [4, 2], [4, 3], [5, 2], [5, 3]]
我曾经像这样使用 sorted with key
bb = int(sorted(ab, key = lambda x:(int(x[1])))[-1][1])
对于此列表的结果
[[1, 1], [2, 1], [2, 2], [3, 2]]
我可以得到 3 和 2,这是每行的最大值
但是我花了太多时间,所以我怎样才能加快速度?
我希望能够像排序方法一样设置键,请帮助
您不需要对列表进行排序(这会增加一堆冗余操作)。您可以改为取内部列表最大值中的最大值:
lst = [[1, 3], [2, 3], [3, 1], [3, 2], [3, 3], [3, 4], [3, 5], [4, 1], [4, 2], [4, 3], [5, 2], [5, 3]]
result = max(max(l) for l in lst)
您可以尝试使用 numpy,它应该 return 5 根据您的列表
import numpy as np
np.max(ab)
我想获取此列表的最大值,但比排序更快。
[[1, 3], [2, 3], [3, 1], [3, 2], [3, 3], [3, 4], [3, 5], [4, 1], [4, 2], [4, 3], [5, 2], [5, 3]]
我曾经像这样使用 sorted with key
bb = int(sorted(ab, key = lambda x:(int(x[1])))[-1][1])
对于此列表的结果
[[1, 1], [2, 1], [2, 2], [3, 2]]
我可以得到 3 和 2,这是每行的最大值 但是我花了太多时间,所以我怎样才能加快速度? 我希望能够像排序方法一样设置键,请帮助
您不需要对列表进行排序(这会增加一堆冗余操作)。您可以改为取内部列表最大值中的最大值:
lst = [[1, 3], [2, 3], [3, 1], [3, 2], [3, 3], [3, 4], [3, 5], [4, 1], [4, 2], [4, 3], [5, 2], [5, 3]]
result = max(max(l) for l in lst)
您可以尝试使用 numpy,它应该 return 5 根据您的列表
import numpy as np
np.max(ab)