Python:append()函数不起作用

时间:2013-10-15 17:08:51

标签: python string list append

这是我写的代码:

import sys
import string

def reverse(li):
    li=li[::-1]
    return li

a=raw_input("Enter first line ")
c=[]
c=a[0:2]
a=reverse(a)
b=[]
i=0
for i in range(0, len(a)):
    if(a[i]==' '):
        b=a[:i]
        b=reverse(b)
b.append(c) 
print b

此处错误为:'str' object has no attribute 'append' b.append(c)

为什么这个错误会逐渐增加?我哪里错了?

3 个答案:

答案 0 :(得分:1)

您正在将b转换为其上方行中的字符串:

b=str(reverse(b))

因此,b现在是一个字符串,它不支持用于列表的.append()方法。

答案 1 :(得分:1)

这是因为你使用这一行b字符串:

b=str(reverse(b))

这样做会使列表蒙上阴影。选择一个不同的变量名称来解决您的问题。

此外,不需要创建函数reverse,因为Python有一个内置的reversed函数:

>>> a = [1, 2, 3]
>>> reversed(a)
<listreverseiterator object at 0x015AC6B0>
>>> list(reversed(a))
[3, 2, 1]
>>>

答案 2 :(得分:0)

在python str对象中没有append()方法但list对象有append()方法

在你的代码中 b = [] 最初,您将b定义为列表

b=reverse(b) 但是,您的代码中的此语句会将blist转换为str

由于str对象,b没有append(),您将收到错误