我有以下问题。当原始输入列表的两个元素之间的步骤不是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
非常感谢!在