[英]Why list comparision in python does value comparision instead of reference comparision?
我创建了 2 个列表,一个列表理解,另一个使用迭代。 第二个列表以空列表开始,因此它必须在 memory 中具有不同的位置。 因此, ==
应该返回False
,但它返回True
。 请注意,memory 位置不同(第二次打印调用):
my_list = [x*2 for x in range(1, 10, 1)]
new_list = []
for item in range(1, 10, 1):
new_list.append(item * 2)
print(my_list == new_list) # True
print(hex(id(my_list)) == hex(id(new_list))) #False
请解释这是为什么?
仅仅是因为这些是 Python 与==
运算符进行列表比较的语义。
如果您确实想要参考比较,请使用is
运算符 - 通常,您永远不需要参考比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.