我有一个列表,我想确定转折点的索引
仅当前5个数据点或以上显示下降时,才视为转折点
da_list = [100,99,98,105,94,78,52,51,49,48,47,50,40,41,39,33,36,22]
^ ^ ^
not is not
用一种笨拙的方式,它告诉我们索引是10:
for idx, each in enumerate(da_list):
if da_list[idx - 5] > da_list[idx - 4] and \
da_list[idx - 4] > da_list[idx - 3] and \
da_list[idx - 3] > da_list[idx - 2] and \
da_list[idx - 2] > da_list[idx - 1] and \
da_list[idx - 1] > da_list[idx] and \
da_list[idx] <= da_list[idx + 1]:
print (idx, each)
有什么更聪明的方法可以做到这一点,特别是如果列表变得更长,需要减少100个数据点
您可以从itertools中尝试
groupby
另一个更简单的方法
这是一种简单而有效的方法
相关问题 更多 >
编程相关推荐