小编mat*_*tam的帖子

Python:基于它们之间的步骤拆分整数列表

我有以下问题.当原始输入列表的两个元素之间的步长不是1时,有一个整数列表,我想将它拆分成列表列表.例如:input = [0,1,3,5,6,7 ],输出= [[0,1],[3],[5,6,7]]

我写了下面这个函数,但它很糟糕,我想知道你们中的任何人是否会帮我找到更好的解决方案.我试图使用itertools,但无法解决它.

这是我的解决方案:

def _get_parts(list_of_indices):
    lv = list_of_indices
    tuples = zip(lv[:-1], lv[1:])
    split_values = []
    for i in tuples:
        if i[1] - i[0] != 1:
            split_values.append(i[1])
    string = '/'.join([str(i) for i in lv])
    substrings = []
    for i in split_values:
        part = string.split(str(i))
        substrings.append(part[0])
        string = string.lstrip(part[0])
    substrings.append(string)
    result = []
    for i in substrings:
        i = i.rstrip('/')
        result.append([int(n) for n in i.split('/')])
    return result
Run Code Online (Sandbox Code Playgroud)

非常感谢!

python integer split list indices

5
推荐指数
1
解决办法
1301
查看次数

标签 统计

indices ×1

integer ×1

list ×1

python ×1

split ×1