【问题标题】:Get minimum value in an array of floats till it's exhausted in python获取浮点数组中的最小值,直到它在python中用尽
【发布时间】:2021-10-28 15:31:02
【问题描述】:

假设我有一个数组a=[1.8 1.2 2.2 1.6]。我想写一个代码,这样我就可以得到最小值,直到数组中的值用完为止。

第一步想要的输出:

1.2

然后将该值分配给int_SOC,并作为下面while循环的输入:

fin_SOC = 3.2
i=0
    while True:
        if int_SOC < fin_SOC:
            int_SOC += output_params.iloc[i, 3]
        else:
            break
        
        i+=1
        print(int_SOC)

只有在这个 while 循环结束时 int_SOC 应该得到下一个最小值,在我们的例子中是 1.6

这里,output_params 是 pandas 时间序列数据框。

下一步,我们将得到一个数组a=[1.8 2.2 1.6]。现在所需的输出:1.6 再次分配给 int_SOCwhile 循环再次执行。

等等……

【问题讨论】:

  • 你的代码有什么问题? exhausted 是什么意思?
  • min(a) 怎么样?
  • @PCM by 'exhausted' 我的意思是直到每个值都被使用。
  • @balderman 它只给出最小值。我想按升序排列值。 :)
  • 所以对列表进行排序。

标签: python arrays pandas numpy loops


【解决方案1】:

获取值的第一步,只需对列表进行排序即可实现最小的优先:

a = [1.8, 1.2, 2.2, 1.6]
for item in sorted(a):
    print(item)

输出:

1.2
1.6
1.8
2.2

【讨论】:

  • 如果我想将这些排序后的值分配给变量比如 m, n, o, p 怎么办?即m=1.2n=1.6o=1.8p=2.2
  • 使用:dict(zip(list('mnop'), sorted(a)))
  • @Nikhil:不,不要那样做。
  • @quamrana 有什么特别的原因吗?
  • @Nikhil:是的,this 问题有很多答案。
【解决方案2】:

按顺序一个接一个地获取值称为排序;)

只需为此使用内置方法:

a=[1.8, 1.2, 2.2, 1.6]
for value in sorted(a):
    print(value)

输出:

1.2
1.6
1.8
2.2

【讨论】:

  • 见鬼!我对代码的后续步骤非常投入,以至于忘记了基础知识:D 谢谢
猜你喜欢
  • 2011-03-30
  • 2013-05-17
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2014-10-23
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
相关资源
最近更新 更多