python小白求助,明明赋值了,但第二次循环还是上一个值,详见描述?

我在循环中明明已经给一个值赋了列表,但是使用方法remove后,似乎第二次循环就赋值无效了.见图.求解为何会这样,该如何解决?
python小白求助,明明赋值了,但第二次循环还是上一个值,详见描述?python小白求助,明明赋值了,但第二次循环还是上一个值,详见描述?


回答:

q是列表,引用类型,具有可变性

  1. 在第一轮循环时,q取了个别名b。当b.remove(3),意味着q的内容也被改动。即q被指向的内容元素3也被移除(b,q操作同一份内容)
  2. 在第二轮循环时,此时q已经变为了[1,2,4],remove 值 3 显然不存在自然报错
conda, Inc. on win32

Type "help", "copyright", "credits" or "license" for more

>>> q=[1,2,3,4]

>>> b=q

>>> b.remove(3)

>>> b

[1, 2, 4]

>>> q

[1, 2, 4]

>>>


回答:

b和q指向的是同一个list,对b的操作也会影响到q

以上是 python小白求助,明明赋值了,但第二次循环还是上一个值,详见描述? 的全部内容, 来源链接: utcz.com/a/41215.html

回到顶部