Как печатать, что я думаю, является объектом?
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"
Я хочу увидеть все комбинации, которые он нашел. Как я могу это сделать?
Ответы
Ответ 1
Леолук прав, вам нужно перебирать его. Но здесь правильный синтаксис:
combos = xuniqueCombinations(test, 3)
for x in combos:
print x
В качестве альтернативы вы можете сначала преобразовать его в список:
combos = list(xuniqueCombinations(test, 3))
print combos
Ответ 2
Это объект-генератор. Получите доступ к нему, итерации по нему:
for x in xuniqueCombinations:
print x
Ответ 3
x = list(xuniqueCombinations(test, 3))
print x
преобразуйте ваш генератор в список и напечатайте......
Ответ 4
Возможно, вам будет удобно посмотреть модуль pprint: http://docs.python.org/library/pprint.html, если вы используете python 2.7 или более:
from pprint import pprint
pprint(x)