python-3.x - 关于groupby的使用
问题描述
我试图了解 groupby 是如何工作的。事实上,我尝试解决黑客等级问题(“压缩字符串!”)
当我查看讨论时,有人以书面形式给出了答案
from itertools import groupby
print(*[(len(list(c)), int(k)) for k, c in groupby(input())])
它有效。据我了解,代码将输入转换为迭代器,因此他会遇到并打印他想要的东西。
但是当我把它变成
from itertools import groupby
iter = groupby(input())
print(*[(len(list(c)), int(k)) for k, c in iter])
它什么也不打印。我认为这很奇怪,但本质上是由于缺乏对自己的了解。而且我不太了解python库的解释。
有人可以启发我吗?
谢谢,戈蒂埃
解决方案
我想知道你如何运行代码?当我在 python3.6 中运行它时,代码是好的
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from itertools import groupby
>>> print(*[(len(list(c)), int(k)) for k, c in groupby(input())])
111111232768723648
(6, 1) (1, 2) (1, 3) (1, 2) (1, 7) (1, 6) (1, 8) (1, 7) (1, 2) (1, 3) (1, 6) (1, 4) (1, 8)
>>> from itertools import groupby
>>> iter = groupby(input())
1123512433241231
>>> print(*[(len(list(c)), int(k)) for k, c in iter])
(2, 1) (1, 2) (1, 3) (1, 5) (1, 1) (1, 2) (1, 4) (2, 3) (1, 2) (1, 4) (1, 1) (1, 2) (1, 3) (1, 1)
>>>
推荐阅读
- php - 在 Laravel 5.5.44 中使用 SwiftMailer 库发送电子邮件时出现问题
- python - 为什么“pip install mysqlclient”在 ubuntu 18.04 LTS 中不起作用
- python - 基于公共键合并2个字典列表的Pythonic方式
- ios - 命令 libtool 失败,退出代码为非零
- javascript - koa restApi 无法将 undefined 或 null 转换为对象
- jt400 - 从作业描述而不是用户配置文件设置 jt400 服务器作业库列表、jobq 和 outq
- typescript - 打字稿映射类型组合
- yaml - 在 Google Cloud 中使用 yaml 跳过完整目录
- haskell - 任意深度的Haskell Recursive HashMap数据结构
- javascript - 关于 JS 和 HTML