python - 列表操作后Groupby对象消失
问题描述
我正在尝试运行长度编码问题,在运行 groupby & list 操作后,我的 groupby 对象不知何故消失了。
import itertools
s = 'AAAABBBCCDAA'
for c, group in itertools.groupby(s):
print(list(group))
print(list(group))
我的输出是
['A', 'A', 'A', 'A']
[]
['B', 'B', 'B']
[]
['C', 'C']
[]
['D']
[]
['A', 'A']
[]
所以对于每个循环,2 个打印命令会产生不同的结果。
谁能帮忙解释我做错了什么?
解决方案
因为有生成器,使用后它们就消失了:
>>> a = iter([1, 2, 3])
>>> list(a)
[1, 2, 3]
>>> list(a)
[]
要保留它们:
import itertools
s = 'AAAABBBCCDAA'
for c, group in itertools.groupby(s):
l = list(group)
print(l)
print(l)
输出:
['A', 'A', 'A', 'A']
['A', 'A', 'A', 'A']
['B', 'B', 'B']
['B', 'B', 'B']
['C', 'C']
['C', 'C']
['D']
['D']
['A', 'A']
['A', 'A']
推荐阅读
- php - 在 Laravel 中使用数据表时如何加快加载表行
- android - 如何使用 ObjectAnimator 为 BottomNavigationView 菜单项图标设置动画
- ssl - Egress TLS Origination 适用于一个域,但不适用于其他域
- java - 如何在没有时区偏移的情况下将日期转换为毫秒?
- c# - 添加 Specflow 功能文件时出现意外的构建错误
- c++ - 为什么我在使用#include 时会出错
在 Clion IDE 中? - linux - 我们什么时候应该在添加系统调用时使用 cond_syscall
- python - timedelta() Python Django的格式显示
- excel - 从 Excel 中打开访问报告会转到“另存为”窗口
- java - Java JPA OrderBy 字段和多列条件搜索不起作用