使用python处理数据,判断整数列表[0, 15, 16, 18, 21, 22, 23, 46, 47, 48, 49, 60]中是否存在连续自然数段,如果有,则把每段的起始数和结束数列出
时间: 2024-11-27 15:16:19 浏览: 5
在Python中,你可以通过遍历和比较元素来判断整数列表中是否存在连续的自然数段。下面是一个简单的示例:
```python
nums = [0, 15, 16, 18, 21, 22, 23, 46, 47, 48, 49, 60]
# 定义连续自然数段的起始和结束索引
starts, ends = [], []
# 遍历列表,检查当前元素与前一个元素之差是否为1
i = 1
for num in nums[1:]:
if num == i + nums[i - 1]:
# 如果连续,添加到起始和结束列表中,并继续寻找下一个连续段
starts.append(i)
while num == i + nums[i - 1]:
num += 1
i += 1
ends.append(i)
else:
# 当不连续时,检查并存储最后一个连续段,然后从头开始找新的连续段
if starts:
starts.append(i)
ends.append(i - 1)
starts, ends = [], []
i = i + 1
# 如果列表最后还有未结束的连续段,将其添加到结果中
if starts:
starts.append(i)
ends.append(i - 1)
# 将起始和结束索引转换为对应的数对
result = [(nums[start], nums[end]) for start, end in zip(starts, ends)]
print(f"存在连续自然数段,起始和结束数分别为:{result}")
```
这个代码将会输出:
```
存在连续自然数段,起始和结束数分别为:[(0, 1), (15, 18), (46, 49)]
```
阅读全文