需求复现: 现在有这样一个大小排好序的列表
data = data = [1, 2, 3, 4, 6, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22]
需要判断列表里的相邻的元素是否连续,连续的判断为:左边的数值+1=右边的数值
需要输出的结果为:
[[1, 2, 3, 4], [6, 7, 8], [10, 11], [14, 15], [18, 19, 20], [22]]
解决思路是判断相邻元素的差值是否等于1
直接上代码
data = [1, 2, 3, 4, 6, 7, 8, 10, 11, 14, 15, 18, 19, 20, 22]
res = []
for i in range(len(data)):
if not res:
res.append([data[i]])
elif data[i - 1] + 1 == data[i]:
res[-1].append(data[i])
else:
res.append([data[i]])
print(res)
out:
[[1, 2, 3, 4], [6, 7, 8], [10, 11], [14, 15], [18, 19, 20], [22]]