这是我写的代码:
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)
。
为什么这个错误会逐渐增加?我哪里错了?
答案 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)
但是,您的代码中的此语句会将b
从list
转换为str
由于str
对象,b
没有append()
,您将收到错误