0

这是我写的代码:

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)

为什么会出现这个错误?我哪里错了?

4

3 回答 3

1

你正在变成b它上面一行中的一个字符串:

b=str(reverse(b))

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

于 2013-10-15T17:09:39.990 回答
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]
>>>
于 2013-10-15T17:09:54.867 回答
0

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

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

b=reverse(b) 但是您代码中的此语句将从转换bliststr

由于str对象 ieb没有,append()你会得到一个错误

于 2013-10-15T17:48:01.980 回答