我想要一个包含连续数字序列的列表列表
我有一个排序的整数列表
[1,2,3,4,6,7,9,10,12,13,14,17,18,19,21]
我似乎无法为此找到合适的算法(查找 DP,但这看起来不像我的情况)
我想要这样的输出
[ [1,2,3,4], [6,7], [9,10], [12,13,14], [17,18,19] , [21]
最佳答案
为了获得更好的性能,您可能想尝试使用 numpy。首先使用 np.diff
获取第一个差异大于 1
的索引, 并使用它们将数组分成几个 block np.split
:
import numpy as np
a = np.array([1,2,3,4,6,7,9,10,12,13,14,17,18,19,21])
np.split(a,np.flatnonzero(np.diff(a) > 1) + 1)
[array([1, 2, 3, 4]),
array([6, 7]),
array([ 9, 10]),
array([12, 13, 14]),
array([17, 18, 19]),
array([21])]
关于python - 将连续的数字序列附加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870076/