import sys
a=sys.stdin.read(1)
l=list(a)
print l
def genSubset(l):
res=[]
if len(l)==0:
return [[]]
smaller=genSubset(l[:-1])
extra=l[-1]
new=[]
for small in smaller:
new.append(small+extra)
return smaller+ new
print genSubset(l)
这是我的代码现在如何将输入作为列表,并将其提供给函数。每次显示无法将str连接到列表的错误,所以想知道list.i如何使用输入尝试输入()和raw_input(),然后使用列表函数,但问题仍然存在
答案 0 :(得分:0)
尝试此修改:
l = input("INPUT: ")
#print type(l) # list
#print l
def genSubset(l):
res=[]
if len(l)==0:
return [[]]
smaller=genSubset(l[:-1])
extra=l[-1]
new=[]
for small in smaller:
#print type(small) # list
#print type(extra) # int
new.append(small + [extra])
return smaller+ new
print genSubset(l)
示例强>
>>>
INPUT: [1, 2, 3]
[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
答案 1 :(得分:0)
代码extra
是字符串。
>>> l = ['1', '2', '3']
>>> extra = l[-1]
>>> extra
'3'
要获取包含最后一项的列表,请使用切片表示法:
>>> extra = l[-1:]
>>> extra
['3']
def genSubset(l):
res=[]
if len(l)==0:
return [[]]
smaller=genSubset(l[:-1])
extra=l[-1:] # <---
new=[]
for small in smaller:
new.append(small+extra)
return smaller+ new
>>> genSubset(['1', '2'])
[[], ['1'], ['2'], ['1', '2']]
顺便说一句,使用sys.stdin.read(1)
,你总是得到一个长度为1(或0)的字符串。