在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列表中进行就地修改的主要内容,如果未能解决你的问题,请参考以下文章