如果列表的类型和内容相同,为什么列表会彼此不同?

时间:2018-07-16 23:06:40

标签: python python-3.x list logical-operators

这是我的谜语: 我有4个列表,每个列表都是一个列表,每个列表都有1、2和3的精确顺序。 以下代码显示所有四个列表的类型均为list,但是由于某些原因,所有四个列表都互不相同。

a = [1, 2, 3]
b = list(a)
c = list([1, 2, 3])
d = list((1, 2, 3))
types = ([type(x) for x in [a, b, c, d]])

全部四个的类型是:

>>> types
[list, list, list, list]

但是当我问他们是否与其他人相同时,我得到一个令人震惊的False作为答案: 我只是创建了一个DataFrame以便清晰显示结果:

import pandas as pd
relations = pd.DataFrame([[x is y for x in [a, b, c, d]] for y in [a, b, c, d]],
                  index=["a", "b", "c", "d"], columns=["a", "b", "c", "d"])

这是结果:

relations
    a       b       c       d
a   True    False   False   False
b   False   True    False   False
c   False   False   True    False
d   False   False   False   True

这怎么可能?

0 个答案:

没有答案