如何“更新”或“覆盖”一个Python列表
aList = [123, 'xyz', 'zara', 'abc']
aList.append(2014)
print aList
这段代码的输出是 [123, 'xyz', 'zara', 'abc', 2014]
现在我们想要对这个列表进行修改,更新它的内容。
我希望最后的输出变成
[2014, 'xyz', 'zara', 'abc']
6 个回答
1
我更喜欢不用enumerate,而是用“range”,像这样:
for item in range(0, len(alist)):
if 123 in alist[item]:
alist[item] = 2014
对于刚接触Python的人来说,这样可能更容易理解,也稍微聪明一点。
祝好,P。
2
我正在学习编程,发现了同样的问题。我觉得解决这个问题最简单的方法就是像@kerby82说的那样,直接覆盖列表。
在Python中,可以用下面的方式给列表中的某个项目赋值:
x[n] = v
这里x是列表的名字,n是数组中的位置索引,v是你想要设置的值。
在你的例子中:
aList = [123, 'xyz', 'zara', 'abc']
aList[0] = 2014
print aList
>>[2014, 'xyz', 'zara', 'abc']
3
我觉得这样写更符合Python的风格:
aList.remove(123)
aList.insert(0, 2014)
而且这样更有用:
def shuffle(list, to_delete, to_shuffle, index):
list.remove(to_delete)
list.insert(index, to_shuffle)
return
list = ['a', 'b']
shuffle(list, 'a', 'c', 0)
print list
>> ['c', 'b']
12
如果你知道要替换的项目的位置,可以直接替换这个项目:
aList[0]=2014
如果你不知道位置,可以遍历整个列表,找到这个项目后再进行替换。
aList = [123, 'xyz', 'zara', 'abc']
for i,item in enumerate(aList):
if item==123:
aList[i]=2014
break
print aList
58
你可以试试这个
alist[0] = 2014
但是如果你不确定123的位置,那你可以这样试试:
for idx, item in enumerate(alist):
if 123 in item:
alist[idx] = 2014