python小白求助,明明赋值了,但第二次循环还是上一个值,详见描述?
我在循环中明明已经给一个值赋了列表,但是使用方法remove后,似乎第二次循环就赋值无效了.见图.求解为何会这样,该如何解决?
回答:
q
是列表,引用类型,具有可变性
- 在第一轮循环时,
q
取了个别名b
。当b.remove(3)
,意味着q
的内容也被改动。即q
被指向的内容元素3也被移除(b,q操作同一份内容) - 在第二轮循环时,此时q已经变为了
[1,2,4]
,remove
值 3 显然不存在自然报错
conda, Inc. on win32Type "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