首页 > 解决方案 > 根据规则拆分列表

问题描述

我有一个清单

values_list = [1013.0, 683.0, 336.0, 406.0, 636.0, 1065.0, 1160.0]

我也有一个价值

value = 660.6153846153846

此列表基于有 3 个阶段的假设。第一阶段应该高于价值,第二阶段较低,第三阶段再次较高。

我想将此列表拆分为三个列表,并保存如下值的顺序:

values_list = [[1013.0, 683.0], [336.0, 406.0, 636.0], [1065.0, 1160.0]]

标签: pythonalgorithm

解决方案


试试这个:

splits = []
splt = []
s = 0
for v in values_list:
    if len(splt) > 0:
        if v > value and s != 1:
            splits.append(splt)
            splt = []
        elif v <= value and s != -1:
            splits.append(splt)
            splt = []
    splt.append(v)
    s = 2*(v > value) - 1
if len(splt) > 0:
    splits.append(splt)

推荐阅读