如何解决如何使用 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]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。