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

标签 python import module python-2.x

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

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

但不是预期的 ('123', '124', '125', [...])我得到 <itertools.combinations object at [pointer]> .我很困惑,因为在其他模块中调用方法返回预期的结果,例如:

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

我对 itertools 模块做错了什么?

最佳答案

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

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

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

关于Python:调用方法返回 <[object] at [pointer]> 而不是 object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13386776/

相关文章:

python - 水平打印字典中的列表

import - 在 .proto 文件中使用导入时出错

angular - Angular 4 中的循环依赖

python - 在 matplotlib 中绘制饼图

python - 有没有办法清除 django.db.connection.queries?

python - 嵌套列表中的唯一值 - 随机

go - 如何从 Go 中的外部包访问结构

python tidylib模块错误

javascript - 如何扩展nodejs模块

javascript - typescript中导入模块的方式有哪些以及require js在模块加载中的作用是什么