使用python处理数据,现有整数列表[0, 15, 16, 18, 21, 22, 23, 46, 47, 48, 49, 60],希望用程序找出其中连续的自然数段,包括[15,16],[21,23],[46,49]
时间: 2024-11-27 10:16:23 浏览: 6
在Python中,你可以使用`itertools.groupby`函数以及一些简单的条件判断来找出列表中连续的自然数段。这里是一个示例代码:
```python
from itertools import groupby
def find_consecutive_intervals(numbers):
numbers.sort() # 先排序列表
intervals = [] # 存储结果的列表
current_start = None # 当前区间开始值
for i, value in enumerate(numbers):
if current_start is None or value - current_start == 1: # 如果开始值不存在或差值为1
current_start = value # 更新当前开始值
else: # 否则,意味着找到了一个连续区间
intervals.append((current_start, i)) # 添加到结果并更新开始值
current_start = value # 重置开始值
# 检查最后是否有未添加的区间
if current_start is not None and (i+1) - current_start == 1:
intervals.append((current_start, i+1))
return intervals
numbers = [0, 15, 16, 18, 21, 22, 23, 46, 47, 48, 49, 60]
consecutive_intervals = find_consecutive_intervals(numbers)
print("连续的自然数段:", consecutive_intervals)
阅读全文