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"
我希望看到它找到的所有组合。我怎样才能做到这一点?
答案 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)