Python:调用方法在[pointer]>而不是object返回<[object]

我是一个非常新手的程序员.我正在尝试使用itertools模块中的组合工具.所以我尝试:

from itertools import *
print combinations('12345', 3)

但不是预期的(‘123′,’124′,’125’,[…])而是在[指针]>处得到< itertools.combinations对象.我很困惑,因为在其他模块中调用方法会返回预期的结果,例如:

import random
print random.randrange(10)
>>> 9

我对itertools模块做错了什么?

最佳答案
没有.结果就是它应该是什么.您显然没有考虑的是结果是迭代器,而不是完全评估的结果列表/元组.您看到的输出是该对象的repr()(它不返回字符串).您可以通过将前者传递给列表构造函数将前者转换为后者:

import itertools
print list(itertools.combinations('12345', 3))

但是当你不需要它而你只是遍历值时,它会通过不同时存储所有结果来节省大量内存.它还允许通过不消耗整个迭代器来避免工作(例如,找到满足某些条件然后返回的第一个组合).

转载注明原文:Python:调用方法在[pointer]>而不是object返回<[object] - 代码日志