python - python中给定数字序列的常量子序列

标签 python algorithm python-2.7 sequence

您好,我想从给定序列中获取相同数字的子序列。 子序列应作为列表返回。

例如

input = [4, 5, 67, 2, 4, 4, 4, 6, 2, 2, 3]

output = [ [4, 4, 4], [2, 2] ].

我在使用 for 循环时遇到问题,因为当我比较列表的两个元素时,例如:

for i in seq:
       if i == seq[i+1]

我收到列表索引超出范围的错误。 我知道这并不复杂,但我才刚刚开始编程。

最佳答案

当您的循环到达数组中的最后一个元素时,在您的示例 3 中,您试图获取“下一个元素”seq[i+1] 但是没有一个,因为3是最后一个。

因此,您可以尝试检查是否有下一个元素。

for i in seq:
       next = seq[i+1] if i < len(seq) else None
       if next and i ==  next

关于python - python中给定数字序列的常量子序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36272752/

相关文章:

python - Tkinter:优化 Canvas 对象移动

python-2.7 - python : How to run multiple commands in one process using popen

Python 和 Bash 命令行环境变量的处理方式不同?

python - 最Pythonic的用于从基于字典键的字典列表中选择一个条目?

c# - 根据重量将百分比分配给项目

objective-c - 在 NSMutableArray 中找到一个不靠近任何整数的整数

c++ - Directx C++ - 绘制 DNA 形状

postgresql - 在与 PostgreSql 连接的 flask SqlAlchemy 中双重插入记录?

python - 如何制作一个由另一个发电机组成的发电机

python - Django 表单向导 'NoneType' 对象没有属性 'rsplit' 错误