Подтвердить что ты не робот

Как печатать, что я думаю, является объектом?

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"

Я хочу увидеть все комбинации, которые он нашел. Как я могу это сделать?

4b9b3361

Ответ 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)