python - 将列表分解为较小的重复元素列表,并保留原始顺序(Python)
问题描述
例如。我有以下列表:
N=[1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 1]
我需要将其分解如下:
N2=[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5, 5], [1]]
最后一个“1”保持在其原始位置,而不与其他“1”分组。谢谢你的帮助
解决方案
使用itertools.groupby
x = [list(i) for _, i in itertools.groupby(N)]
# Result
[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5, 5], [1]]
推荐阅读
- selenium - 测试是否打开了软键盘
- selenium - javascriptexecutor.executescript 不适用于某些应用程序
- oop - 检查地图中的连续值?
- amazon-web-services - 为 SSE-C 生成预签名 URL 时出错
- greenplum - 如何减少 Greenplum 中的 PostgreSQL max_connections 参数?
- python - 将值分配给 python 列表特定位置
- javascript - 添加 ClickListener JQuery Mobile ListView
- r - 从科学文章中复制逻辑回归
- python - 如果数据框中的单元格值包含小于 5 的字符,则 Python 删除行
- wordpress - WordPress 简码表单($_POST 数组)的输入有多复杂?