关于python的is的问题,为什么这样能打印出来

img

  • 关于python的is的问题,为什么这样能打印出来
    关于python的is的问题,为什么这样能打印出来
    关于python的is的问题,为什么这样能打印出来

python中把列表名赋给变量,相当于让变量指向列表,而不是复制一个列表。
你之所以认为b is a不应该成立,是因为你以为是下面的情况:

img

但实际是这样的:

img

自然 a is b是成立的

为了避免第二种情况,可以改写为

b=a.copy()

is比较两个条件:1.内容相同。2.内存中地址相同
b=a,地址相同。
你可以print(a)的内容看看,a也被改变了

数组赋值,b=a时他们是共享同一片存储空间的,当对b改变,a也会改变。
用b=list(a)或b=a[:]就可以避免这种情况。