我有一个已排序的
我想将其拆分成一些组--每个组都有连续的数字,就像这样:
编辑:
我从项目more-itertools中找到了一段python代码:
List<int>
,就像这样:{ 1, 2, 3, 4, 6, 7, 9 }
我想将其拆分成一些组--每个组都有连续的数字,就像这样:
{ {1, 2, 3, 4}, {6, 7}, {9} }
我知道可以使用for
循环遍历列表,并比较当前值和前一个值,然后决定是将其附加到最后一组还是创建新组。但是我想找到一种“漂亮”的方法来实现它。也许可以使用LINQ?编辑:
我从项目more-itertools中找到了一段python代码:
def consecutive_groups(iterable, ordering=lambda x: x):
for k, g in groupby(
enumerate(iterable), key=lambda x: x[0] - ordering(x[1])
):
yield map(itemgetter(1), g)
for
循环不够"优雅"? 我的猜测是,使用Linq解决方案可能会更"丑陋"。 - juharr