Python判断两个列表

ls1 = [11,22,33,44]
ls2 = [11,22,33,44]

print(id(ls1))
print(id(ls2))

print(ls1 == ls2) # True
print(ls1 is ls2) # 为什么这里是False

Python中的==is,主要的是,==看的是值,is看的是地址。这篇博客讲的很清楚 https://blog.csdn.net/qq_26442553/article/details/82195061

a = [12, 3, 4, 5, 6, 78, 9]
b = a
print (a == b)
print (a is b)

c = [12, 3, 4, 5, 6, 78, 9]
print (a == c)
print (a is c)

img

改变b中第一个元素的值再看看结果

a = [12, 3, 4, 5, 6, 78, 9]
b = a

c = [12, 3, 4, 5, 6, 78, 9]

print ("b中第一个元素的值修改之前")
print ("a为:" + str(a))
print ("b为:" + str(b))
print ("c为:" + str(c))


# 改变b中第一个元素的值
b[0] = b[0] + 1
print ("b中第一个元素的值修改之后")
print ("a为:" + str(a))
print ("b为:" + str(b))

print (a == b)
print (a is b)

print ("c为:" + str(c))
print (a == c)
print (a is c)

img

改变b中第一个元素的值之后,a的值也改变了。