首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除python itertools.combinations

删除python itertools.combinations
EN

Stack Overflow用户
提问于 2014-11-12 14:14:38
回答 3查看 266关注 0票数 2

我注意到Python中的itertools.combinations对象似乎可以删除它自己:

代码语言:javascript
运行
复制
>>> import itertools
>>> x = itertools.combinations( 'ABCD', 2 )
>>> print list( x )
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]
>>> print list( x )
[]

为什么对象x在这里变了?我没有指派x做任何事。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-12 14:15:34

itertools.combinations (以及许多其他itertools方法)返回生成器表达式。发电机只能读取一次。

您可以阅读更多关于生成器这里的内容。

票数 1
EN

Stack Overflow用户

发布于 2014-11-12 14:17:15

你正在创建一个生成器。如果希望稍后使用这些值,请将它们保存到列表中:

代码语言:javascript
运行
复制
>>> import itertools
>>> x = itertools.combinations( 'ABCD', 2 )
>>> list_of_x = list( x )
>>> print(list_of_x)
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]
 >>> print(list_of_x)
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]
票数 4
EN

Stack Overflow用户

发布于 2014-11-12 14:16:17

Iterator只工作一次。您不能再次使用iterator对象。

Iterator作为generators工作,包括next()函数和引发Stop Iteration错误,您可以阅读关于它的这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26889086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档