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
이렇게하면 조합을 인쇄 할 수 있습니다.itertools.chain iter 목록을 연결 하시겠습니까?
>>>
('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>
을 인쇄 할 수 없습니다 내가 요구하는대로 작동하도록 코드를 다시 작성해야합니다. 그들 사이의 차이가 무엇
itertools.chain(iter, iter, iter) vs itertools.chain(*[iter,iter,iter])
: 여기
itc = itertools.chain(*its)
내 질문입니까?
documentation
itertools.chain
에 따라 수행합니다 또한
itertools.chain(iter, iter, iter)
않는 이유
는
def chain(*iterables):
# chain('ABC', 'DEF') --> A B C D E F
for it in iterables:
for element in it:
yield element
그래서, 여기에 작동?
iter, iter, iter = *(iter, iter, iter)
을 의미합니까?
"인수 언 패킹" – user478514