그것은 iterator
입니다. 너는 list(combos)
로 고갈시켰다. 제로 요소를 가지고, 그래서 거기에있어 그 후 더 comb
디스플레이에 남아 있지 :
>>> import itertools
>>> combos = itertools.combinations(range(3),2)
>>> combos
<itertools.combinations object at 0x0000000004BB66D8>
>>> list(combos)
[(0, 1), (0, 2), (1, 2)]
>>> combos.next()
Traceback (most recent call last):
File "<input>", line 1, in <module>
StopIteration
>>> len(combos)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: object of type 'itertools.combinations' has no len()
combos
이 하지 목록입니다. 그것은 iterator
입니다 ... 그리고 당신이 모든 조건을 완료 일단은 StopIteration
예외가 발생하지만, list comprehension
및 StopIteration
에 for loop
모두 끝, 그래서 그들은 단지 제로 시간을 실행합니다.
당신은, 그러나, 수행 할 수 있습니다 목록과 목록으로 변환됩니다
combos = list(itertools.combinations(range(3),2))
이 무기한으로 이송 할 수 있습니다.
반복자입니다. 당신은'list (combos)'로 그것을 고갈 시켰습니다. 그 후 그것은 제로 요소를 가지므로 표시 할 "빗"이 없습니다. – TemporalWolf
단순히'list (combos)'를 출력하여 비어 있지 않음을 보여줍니다. – Peaceful
@TemporalWolf : True !! 나는 너무 어리 석다! – Peaceful