如何使用 python 选择最高数字更紧凑?

问题描述

我有这个代码,其中有一个大小数组 (i,j),对于每个 j 变量,我想选择 I 变量中的最大值。

例如,我有数组 [[2,5,1][12,4,6],[1,7,8],[2,5]] 我想得到最高的数字每个内部数组,所以它应该返回:[5,12,8,5]

我有以下代码可以正常工作,但是,它有点凌乱且难以阅读,所以我的问题是我可以让它更紧凑吗?

这是我的代码

high_net_profit = list()
for i in range(len(self.accum_profit[0])):
    high_value = 0
    for j in range((len(self.accum_profit))):
        if j == 0:
            high_value = self.accum_profit[j][i]
        else:
            if self.accum_profit[j][i] > high_value: high_value = self.accum_profit[j][i]
    high_net_profit.append(high_value)

解决方法

试试:

lst = [[2,5,1],[12,4,6],[1,7,8],[2,5]]

out = [max(l) for l in lst]
print(out)

打印:

[5,12,8,5]

或者:

out = [*map(max,lst)]
print(out)
,
SELECT pg_sleep(31);

SQL Error [57014]: ERROR: canceling statement due to statement timeout

如果你只需要可迭代对象:

s =  [[2,1][12,5]]

如果你需要一个列表,那么用 x = map(max,s) 换行:

list
,

这是一个使用 numpy 的简单解决方案。 Numpy 是处理数字时非常有用的库:

import numpy as np

l_in = [[2,5]]

# out = [max(l) for l in l_in]  # can also be used
out = list(np.max(l_in,axis=1))

print(out)

输出:

[5,5]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...