Как напечатать то, что я считаю объектом? - PullRequest
11 голосов
/ 14 сентября 2010
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 ]

17 голосов
/ 14 сентября 2010

Леолук прав, вам нужно перебрать его. Но вот правильный синтаксис:

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

Кроме того, вы можете сначала преобразовать его в список:

combos = list(xuniqueCombinations(test, 3))
print combos
4 голосов
/ 14 сентября 2010

Это объект генератора. Получите доступ к нему, перебирая его:

for x in xuniqueCombinations:
    print x
0 голосов
/ 14 сентября 2010
x = list(xuniqueCombinations(test, 3))
print x

преобразовать ваш генератор в список и распечатать ......

0 голосов
/ 14 сентября 2010

Может быть удобно взглянуть на модуль pprint: http://docs.python.org/library/pprint.html, если вы используете Python 2.7 или более:

from pprint import pprint
pprint(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...