【发布时间】:2018-06-28 02:53:12
【问题描述】:
换句话说,我有一个应该随时间增加的列表元素(例如质量)。这是一个示例列表:从最后一个元素179.2 开始,它之后的每个元素都应该增加。我们看到它们是不符合此条件的实例(在278.8 之后)。
masst = [306.4, 303.7, 301.7, 301.7, 295.7, 293.9, 288.4, 225.9,
225.2, 278.7, 274.6, 272.9, 269.3, 269.8, 269.1, 271.1,
269.7, 266.9, 266.8, 192.8, 197.6, 196.1, 254.3, 249.6,
244.8, 243.4, 241.2, 237.6, 234.1, 229.8, 223.2, 217.8
211.2, 207.5, 203.5, 199.2, 195.6, 191.7, 188.0, 179.2]
虽然这是一个示例,但我有实际数据发生这种情况,其长度也各不相同。所以理想情况下,我试图通过遍历每个列表来解析这些列表,直到每个元素都从其前一个元素增加。
我可以重新排列列表的递增顺序,直到实际列表看起来与重新排列的列表匹配:
import numpy as np
check = masst == sorted(masst, reverse=True)
while(check==False):
bool_ = [] # list of true and false statements
for i in range(0, len(masst)-1):
inc = masst[i] >= masst[i+1]
bool_.append(inc)
masst = list(np.array(masst)[bool_])
这样做,我似乎陷入了一个巨大的循环!我对自己的方法做错了什么感到有些困惑。
【问题讨论】: