我创建了一个包含各种值的列表。但是,我想知道如何更新/替换特定位置列表中的数据。例如,如果我有一个列表如下:[hello, goodbye, welcome, message]
我想用位置2
替换字符串'wave'
。我该怎么办?我尝试了下面的代码,但它将值移到右边并插入一个新的数据位置给出了位置:
MyList = ['hello', 'goodbye', 'welcome', 'message']
MyList.insert(2, 'wave')
答案 0 :(得分:4)
列表可变,这意味着您可以在适当的位置更改它们。因此,您可以简单地为索引2指定新值:
>>> lst = range(10)
>>> lst
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst[2] = "new value"
>>> lst
[0, 1, 'new value', 3, 4, 5, 6, 7, 8, 9]
dicts
也是可变的:
>>> d = {1:'a',2:'b'}
>>> d[2] = "new value"
>>> d
{1: 'a', 2: 'new value'}
但是,字符串和元组不是。您可以迭代它们,这有时会导致混淆,(尤其是子字符串符号与切片)
>>> aString = "Hello, my name is Dave"
'my '
>>> aString[7:9]
'my'
>>> aString[7:9] = "MY"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
类似地,
>>> tup = (1,2,3)
>>> tup[0]
1
>>> tup[0] = 6
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
对于字符串,你可以&#34;作弊&#34;通过将它们转换为列表(split()
),改变它们,然后将它们放回一个字符串(join()
),但这是不字符串的实际变异到位