python根据数字的顺序将列表划分为多个列表
我有这个清单 nums=[1,2,6,7,8,9,44,90110111112] 我想根据顺序将它们划分为子列表 44:前后无编号;排除 90与44相同 因此,最终输出将是 最后一项=[[1,2],[6,7,8,9],[110111112]] 我希望该列表是动态的,以便它可以接收任何数量的项目,甚至数百万python根据数字的顺序将列表划分为多个列表,python,numbers,logic,Python,Numbers,Logic,我有这个清单 nums=[1,2,6,7,8,9,44,90110111112] 我想根据顺序将它们划分为子列表 44:前后无编号;排除 90与44相同 因此,最终输出将是 最后一项=[[1,2],[6,7,8,9],[110111112]] 我希望该列表是动态的,以便它可以接收任何数量的项目,甚至数百万 谢谢以下是从列表中查找组序列的解决方案 def groupSequence(x): it = iter(x) prev, res = next(it), []
谢谢以下是从列表中查找组序列的解决方案
def groupSequence(x):
it = iter(x)
prev, res = next(it), []
while prev is not None:
start = next(it, None)
if prev + 1 == start:
res.append(prev)
elif res:
yield list(res + [prev])
res = []
prev = start
nums=[1,2,6,7,8,9,44,90,110,111,112]
print(list(groupSequence(nums)))
到目前为止你试过什么?你得到了什么结果?这看起来像是学校布置的作业,堆栈溢出不是为了让其他人来解决您的问题,但为了帮助您,当您遇到问题时,您可以使用副本中的一个解决方案,然后根据子列表长度大于1的情况过滤列表。我认为我为每个项目执行for循环,并在该项目上定义变量,该变量将加1,如果等于1,则将附加到另一个列表,最后,但它是在代码中很难做到我得到了答案。。。根据另一页提到的问题。。。当我有空的时候我会试试。。。谢谢你的回复