错误只能将列表(不是“str”)连接到列表

时间:2012-10-16 02:43:12

标签: python function python-2.7

我的程序应该反转输入的字符串,打印然后提取数字并在列表中打印反转字符串的数字。

def reverse_str(string):
    revstring =('')
    length=len(string)
    i = length - 1
    while i>=0:
        revstring = revstring + string[i]
        i = i - 1
    return revstring
def strip_digits(string):
    result = []
    for c in string:
        result = result + c
string = raw_input("Enter a string->")
new_str = reverse_str(string)
print new_str
numberless_str  = strip_digits(string)
print numberless_str

3 个答案:

答案 0 :(得分:4)

str放入list

result = result + [c]

或使用append()

result.append(c)

答案 1 :(得分:1)

我猜strip_digits()正在进行中?当它进入for循环时写入它,它会尝试将字符串c附加到列表[]上。你不能这样做。您可以将字符串附加到另一个字符串,或将列表附加到另一个列表。

也许你的意思是result作为一个空字符串开始,就像reverse_str一样?

def strip_digits(string):
    result = ''
    for c in string:
        result = result + c

或者如果您希望它成为列表,请先将c放入列表中,或使用append()

def strip_digits(string):
    result = []
    for c in string:
        result = result + [c]
        # or: result.append(c)

答案 2 :(得分:1)

如果您想将它们作为列表,则应更改:

result = result + c

成:

result.append (c)

但是,请记住,您的代码并不完全符合您的规范。

具体来说,你的函数strip_digits 不是剥离(即丢弃)数字,它实际上是在列出它们,所以我将其重命名为{{1} }。我也将get_digits更改为numberless_str,因为它根本不是无数的。

其次,它从输入字符串中获取所有字符,而不仅仅是数字。

第三,它是作用于原始字符串而不是反向字符串。

最后,您应该从您的函数返回 number_str,否则您什么也得不到(result)。

代码最好写成:

None