我试图编写一个简单的程序来接收一组元素并打印出powerset。
我正在使用python的文档中给出的powerset函数的配方:https://docs.python.org/3.4/library/itertools.html
由于某种原因而不是返回值,它返回itertools.chain对象的内存地址。
为什么要这样做?
from itertools import chain,combinations
def pwrst(iter):
xs = list(iter)
return chain.from_iterable( combinations(xs,n) for n in range(len(xs)+1))
s = input("Enter elements seperated by comma: ")
il = s(',')
ss = [int(x.strip()) for x in il]
pwrst(ss)
答案 0 :(得分:0)
chain.from_iterable
返回一个可迭代的对象(其默认值__repr__
告诉您内存地址)。你实际上必须迭代它来获取值。 e.g:
list(pwrst(ss))
在正常情况下,您可能会执行以下操作:
for item in pwrst(ss):
...