把[2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18]列表里面所有相邻相差1的元素分离出来
时间: 2023-10-30 16:08:07 浏览: 208
可以使用Python中的itertools模块中的groupby函数来实现。具体实现代码如下:
```python
from itertools import groupby
lst = [2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18]
result = []
for k, g in groupby(enumerate(lst), lambda x: x[0]-x[1]):
result.append(list(map(lambda x: x[1], g)))
print(result)
```
输出结果为:
```
[[2], [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], [18]]
```
解释:
首先使用enumerate函数将列表中的元素转换为带有索引的元组,然后使用groupby函数将相邻元素之间的差值为1的元素分组,最后将每个分组中的元素提取出来,组成一个新的列表。
阅读全文