如何打印我认为的对象?

时间:2010-09-14 16:21:19

标签: python generator

test = ["a","b","c","d","e"]

def xuniqueCombinations(items, n):
    if n==0: yield []
    else:
        for i in xrange(len(items)-n+1):
            for cc in xuniqueCombinations(items[i+1:],n-1):
                yield [items[i]]+cc

x = xuniqueCombinations(test, 3)
print x

输出

"generator object xuniqueCombinations at 0x020EBFA8"

我希望看到它找到的所有组合。我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:17)

leoluk是对的,你需要迭代它。但这是正确的语法:

combos = xuniqueCombinations(test, 3)
for x in combos:
    print x

或者,您可以先将其转换为列表:

combos = list(xuniqueCombinations(test, 3))
print combos

答案 1 :(得分:4)

这是一个生成器对象。通过迭代来访问它:

for x in xuniqueCombinations:
    print x

答案 2 :(得分:0)

x = list(xuniqueCombinations(test, 3))
print x

将您的生成器转换为列表,并打印......

答案 3 :(得分:-3)

如果您正在运行python 2.7或更高版本,查看pprint模块可能很方便:http://docs.python.org/library/pprint.html

from pprint import pprint
pprint(x)