print id ([]) == id([])
>>> True
为什么呢? Because:
id([])创建一个列表,获取id,并释放列表。该 第二次它再次创建一个列表,但“把它放在同一个 放置“因为没有其他事情发生。身份证只在期间有效 对象的生命周期,在这种情况下,它的生命周期几乎为零
那么这里的区别是什么?
print id ({}) == id([])
>>> False
不应该创建一个dict,获取id并处理dict,然后创建一个列表将它放在同一个因为没有其他更改?
答案 0 :(得分:2)
列表和词典不存储在相同的内存区域中,因此它们彼此之间会有不同的ID。两个相继创建和释放的阵列将获得相同的ID,因此两个序列也会得到相同的ID,但是这些序列不会获得与阵列相同的ID。
>>> print id([])
3073720876
>>> print id([])
3073720876
>>> print id({})
3073762412
>>> print id({})
3073762412
答案 1 :(得分:1)
你已经击中了头部。 创建dict
。后者创建了一个list
,解释了这种行为:
>>> [] == {}
False
>>> id([]) == id({})
False
>>>
>>> id([])
4301980664
>>> id({})
4298601328
>>>
列表和词典不以相同的方式存储,因此两种不同的类型不会返回相同的内容。但是,两个列表或两个词组将返回相同的内容。