>>> 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'
中的第一项,但我无法附加到列表myList
中的第1项。谢谢。
Edit01:
@pyfunc:谢谢你的解释;现在我明白了。
我需要一份清单清单;所以'从形式'应该是一个列表。我这样做了(如果这不正确,请纠正):
>>> 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']]
>>>
答案 0 :(得分:18)
myList [1]是myList的一个元素,它的类型是字符串。
myList [1]是str,你不能追加它。 myList是一个列表,您应该已经附加到它。
>>> 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'
>>>
答案 1 :(得分:5)
如果要将值附加到myList,请使用myList.append(s)
。
字符串是不可变的 - 你不能追加它们。
答案 2 :(得分:2)
为什么myList [1]被视为'str'对象?
因为它是一个字符串。还有什么是'from form'
,如果不是字符串? (实际上,字符串也是序列,即它们也可以被索引,切片,迭代等等 - 但这是str
类的一部分,并不会使它成为列表或其他东西。)
中的第一项
mList[1]
返回列表'from form'
如果你的意思是myList
是'from form'
,那就不是了! 秒(索引从0开始)元素为'from form'
。这是一个很大的区别。这是房子和人之间的区别。
此外,myList
不一定是短代码示例中的list
- 它可以是接受1
作为索引的任何内容 - 一个以1作为索引的字典,a列表,元组,大多数其他序列等。但这是无关紧要的。
但我无法附加到列表
中的第1项myList
当然不是,因为它是一个字符串,你不能附加到字符串。字符串是不可变的。您可以连接(如“,这是一个由这两个”组成的新对象)字符串。但是你不能append
(就像在“这个特定的对象现在最终有这个”)。
答案 3 :(得分:0)
您要做的是向您已创建的列表中的每个项目添加其他信息,以便
alist[ 'from form', 'stuff 2', 'stuff 3']
for j in range( 0,len[alist]):
temp= []
temp.append(alist[j]) # alist[0] is 'from form'
temp.append('t') # slot for first piece of data 't'
temp.append('-') # slot for second piece of data
blist.append(temp) # will be alist with 2 additional fields for extra stuff assocated with each item in alist
答案 4 :(得分:0)
这是一个简单的程序,向列表显示了append('t')。
n = ['f','g','h','i','k']
for i in range(1):
temp=[]
temp.append(n[-2:])
temp.append('t')
print(temp)
输出:[['i','k'],'t']
答案 5 :(得分:0)
相反,您可以使用 +=
语法:
a = "prin"
a.append("T") #doesn't wok
a += "t" #works