如何“更新”或“覆盖”一个Python列表

33 投票
6 回答
290756 浏览
提问于 2025-04-18 17:56
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

撰写回答