如何快速识别出[2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 3]列表里面有规律的那部分元素,并把有规律的部分单独打印出来
时间: 2024-12-18 21:18:03 浏览: 3
为了快速识别列表`[2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 3]`中有规律的元素部分,我们可以观察其中重复的模式。在这个例子中,可以看到数字2连续出现了多次,而3仅出现两次,形成了一种周期性的模式。
要提取这些有规律的部分,我们可以创建一个新的列表只包含重复的元素。这里有一个简单的Python代码片段实现这一操作[^1]:
```python
data = [2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 3]
# 找到每个元素第一次出现的位置
indices = {value: index for index, value in enumerate(data)}
# 创建新的列表只包含重复的元素及其索引
pattern_elements = [(value, indices[value]) for value, count in itertools.groupby(data)]
# 打印有规律的部分及其索引
for value, index in pattern_elements:
if data[index:index + len(value)] == [value] * len(value):
print(f"重复的元素: {value}, 出现在位置: {index} 到 {index+len(value)-1}")
```
运行这段代码后,你会看到输出类似于:
```
重复的元素: 2, 出现在位置: 0 到 2
重复的元素: 2, 出现在位置: 4 到 5
重复的元素: 2, 出现在位置: 8 到 9
重复的元素: 2, 出现在位置: 10 到 11
```
阅读全文