繁体   English   中英

为什么在 python 中列出比较进行值比较而不是参考比较?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM