我注意到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做任何事。
发布于 2014-11-12 14:15:34
itertools.combinations (以及许多其他itertools方法)返回生成器表达式。发电机只能读取一次。
您可以阅读更多关于生成器这里的内容。
发布于 2014-11-12 14:17:15
你正在创建一个生成器。如果希望稍后使用这些值,请将它们保存到列表中:
>>> 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')]发布于 2014-11-12 14:16:17
Iterator只工作一次。您不能再次使用iterator对象。
Iterator作为generators工作,包括next()函数和引发Stop Iteration错误,您可以阅读关于它的这里。
https://stackoverflow.com/questions/26889086
复制相似问题