在Python列表中进行就地修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python列表中进行就地修改相关的知识,希望对你有一定的参考价值。

我想就地更改列表,以便如果列表为l1 = [0, 1, A, B],那么我可以将字母值替换为数字。

我尝试使用以下代码:

for x in l1:
    if x == 'A':
        x = 10

但是,当我再次查看列表时,它仍然相同,并且A未被更改为10。为什么此代码不起作用?

我也尝试使用索引,但是那也不起作用。

for i in range(len(l1)):
     if l1[i] == 'A':
        l1[i] = 10
答案

在Python中,事物总是按值传递。 for循环中的“ x”变量是列表中元素的副本,而不是列表元素的指针/引用。

您可以通过直接建立索引来更改列表的值。

实现此目的的一种方法如下。

对于i,x inumerate(l1):如果x =='A':l1 [i] = 10

假设变量指向值'A'!

以上是关于在Python列表中进行就地修改的主要内容,如果未能解决你的问题,请参考以下文章