gpt4 book ai didi

python - itertools.chain 链接一个 iter 列表?

转载 作者:太空狗 更新时间:2023-10-29 20:39:08 26 4
gpt4 key购买 nike

import itertools
def _yield_sample():
it = iter(itertools.combinations('ABCD', 2))
it2 = iter(itertools.combinations('EFGH', 3))
itc = itertools.chain(it,it2)
for x in itc:
yield x

def main():
for x in _yield_sample():
print x

这可以打印组合。

>>> 
('A', 'B')
('A', 'C')
('A', 'D')
...

但是这个:

def __position_combination(_count = [2,3,4,5]):
its = []
for ct in _count:
it = iter(itertools.combinations('ABCDEFG', ct))
its.append(it)
itc = itertools.chain(its)
for x in itc:
yield x

def main():
for x in __position_combination():
print x

不会,会打印出来

>>> 
<itertools.combinations object at 0x02179210>
<itertools.combinations object at 0x02179240>
<itertools.combinations object at 0x02179270>

我必须重写代码以使其按要求工作。

itc = itertools.chain(*its)

这是我的问题:

itertools.chain(iter, iter, iter)  vs    itertools.chain(*[iter,iter,iter])

它们有什么区别?根据documentationitertools.chain 做:

def chain(*iterables):
# chain('ABC', 'DEF') --> A B C D E F
for it in iterables:
for element in it:
yield element

那么,为什么 itertools.chain(iter, iter, iter) 也可以在这里工作?
这是否意味着 iter, iter, iter = *(iter, iter, iter)

最佳答案

关于python - itertools.chain 链接一个 iter 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5229188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com