簡體   English   中英

python itertools.combinations已刪除

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM