You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python打印itertools.combinations为何输出对象地址,如何获取实际结果?

itertools模块下的combinations方法返回的是惰性迭代器对象,设计上是为了在处理大数量级的组合场景时节省内存,不会预先生成所有组合结果,所以直接打印该对象只会输出它的类型和内存地址,看不到具体内容。

方案1:一次性获取所有组合结果

如果需要直接查看所有组合,用list()将迭代器转为列表即可:

from itertools import combinations

print(list(combinations(range(4), 2)))

运行后输出结果为:

[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]

方案2:遍历迭代器逐个处理(适合大数量级组合)

如果生成的组合数量极大,一次性转成列表会占用过多内存,可以直接遍历迭代器逐个获取组合:

from itertools import combinations

for comb in combinations(range(4), 2):
    print(comb)

运行后输出结果为:

(0, 1)
(0, 2)
(0, 3)
(1, 2)
(1, 3)
(2, 3)

内容的提问来源于stack exchange,提问作者icelov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:09:00