AttributeError:“str”对象没有“append”属性

2024-03-28 17:08:48 发布

您现在位置:Python中文网/ 问答频道 /正文

>>> myList[1]
'from form'
>>> myList[1].append(s)

Traceback (most recent call last):
  File "<pyshell#144>", line 1, in <module>
    myList[1].append(s)
AttributeError: 'str' object has no attribute 'append'
>>>

为什么myList[1]被认为是'str'对象?mList[1]返回列表中的第一个项'from form',但我不能附加到列表中的项1 myList。谢谢您。

编辑01:

@pyfunc:谢谢你的解释,现在我明白了。

我需要一个列表;所以“from form”应该是一个列表。我这样做了(如果这样做不对,请更正):

>>> myList
[1, 'from form', [1, 2, 't']]
>>> s = myList[1]
>>> s
'from form'
>>> s = [myList[1]]
>>> s
['from form']
>>> myList[1] = s
>>> myList
[1, ['from form'], [1, 2, 't']]
>>> 

Tags: infromformmost列表linecallfile
3条回答

Why myList[1] is considered a 'str' object?

因为它是一根绳子。如果不是字符串,还有什么是'from form'?(实际上,字符串也是序列,也就是说,它们也可以被索引、切片、迭代等——但这是str类的一部分,不能成为列表或其他东西)。

mList[1] returns the first item in the list 'from form'

如果你的意思是myList'from form',不,不是!!!(索引从0开始)元素'from form'。这是一个很大的不同。这是房子和人的区别。

而且,myList不必是短代码示例中的list它可以是任何接受1作为索引的对象-一个1作为索引的dict、一个列表、一个元组、大多数其他序列等等,但这是不相关的。

but I cannot append to item 1 in the list myList

当然不是,因为它是一个字符串,不能附加到字符串。字符串是不可变的。您可以连接(如“有一个新对象由这两个”)字符串。但是您不能append(如“这个特定的对象现在在末尾有这个”)。

如果要将值附加到myList,请使用myList.append(s)

字符串是不可变的——不能附加到它们。

myList[1]是myList的一个元素,它的类型是string。

myList[1]是str,不能附加到它。 我的列表是一个列表,你应该添加到它后面。

>>> myList = [1, 'from form', [1,2]]
>>> myList[1]
'from form'
>>> myList[2]
[1, 2]
>>> myList[2].append('t')
>>> myList
[1, 'from form', [1, 2, 't']]
>>> myList[1].append('t')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'append'
>>> 

相关问题 更多 >