首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python itertools.combinations早期截止

Python itertools.combinations早期截止
EN

Stack Overflow用户
提问于 2017-10-19 13:42:43
回答 1查看 44关注 0票数 0

在下面的代码中,从环积中的对象c打印出来的唯一项是第一项,尽管“c”和“d”都包含3项,并且“d”的所有3项都被正确地迭代过。

代码语言:javascript
复制
from itertools import combinations

c,d = combinations(map(str, range(3)),2), combinations(map(str, range(3)),2)
for x in c:
 for y in d:
  print(x,y)

将生成器输入列表解决了这个问题,并打印了9行,但是为什么首先会出现这种情况呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-19 13:49:54

问题是cd都是迭代器,在第一次通过内环之后,d已经耗尽。解决这一问题的最简单方法是:

代码语言:javascript
复制
from itertools import combinations, product

c = combinations(map(str, range(3)),2)
d = combinations(map(str, range(3)),2)

for x, y in product(c, d):
    print(x,y)

这就产生了:

代码语言:javascript
复制
('0', '1') ('0', '1')
('0', '1') ('0', '2')
('0', '1') ('1', '2')
('0', '2') ('0', '1')
('0', '2') ('0', '2')
('0', '2') ('1', '2')
('1', '2') ('0', '1')
('1', '2') ('0', '2')
('1', '2') ('1', '2')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46831353

复制
相关文章

相似问题

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