首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python: append()函数不能工作

Python: append()函数不能工作
EN

Stack Overflow用户
提问于 2013-10-15 17:08:51
回答 3查看 2.6K关注 0票数 0

这是我写的代码:

代码语言:javascript
复制
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' on b.append(c)

为什么这个错误在爬升?我哪里出问题了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-15 17:09:54

这是因为您使用以下行使b成为一个字符串:

代码语言:javascript
复制
b=str(reverse(b))

这样做会使列表黯然失色。选择不同的变量名来解决问题。

此外,不需要设置函数reverse,因为reversed有内置的reversed函数:

代码语言:javascript
复制
>>> a = [1, 2, 3]
>>> reversed(a)
<listreverseiterator object at 0x015AC6B0>
>>> list(reversed(a))
[3, 2, 1]
>>>
票数 1
EN

Stack Overflow用户

发布于 2013-10-15 17:09:39

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

代码语言:javascript
复制
b=str(reverse(b))

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

票数 1
EN

Stack Overflow用户

发布于 2013-10-15 17:48:01

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

在代码b = []中,首先将b定义为列表

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

由于str对象(即b )没有append(),您将得到一个错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19387006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档