[英]python itertools.combinations deleted
我注意到Python中的itertools.combinations對象似乎可以刪除自身:
>>> 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為任何值。
您正在創建一個生成器 。 如果以后要使用這些值,請將它們保存到列表中:
>>> 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')]
itertools.combinations
(以及許多其他itertools
方法)返回生成器表達式。 生成器只能精確讀取1次。
您可以在此處閱讀有關發電機的更多信息
Iterator
僅工作一次。 您不能再次使用iterator
對象。
迭代器用作包含next()
函數的generators
並引發Stop Iteration
錯誤,您可以在此處閱讀
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.