Python 列表和相等

标签 python list equality

我正在为期中考试练习,我发现了这个:

the_cake = [1,2,[3],4,5]
a_lie = the_cake[1:4]
the_cake = the_cake[1:4]
great = a_lie
delicious = the_cake
moist = great[:-1]

在Python解释器中运行这段代码后,为什么是:

the_cake.append == a_lie.append
False

我的想法是它们是平等的方法,虽然不是“IS”,但应该满足平等。

也许由于实例化,它的计算结果为 False? 如果这是真的,那么比较时类属性的计算结果是否为 True? 这是列表对象的特殊情况吗?


后续: 根据这个: Is there a difference between `==` and `is` in Python?

“如果两个变量指向同一个对象,IS 将返回 True,如果变量引用的对象相等,则 == 返回。”

那么List类的方法是否指向“append”方法的单独实例?

所以,如果我定义一个函数 x(参数),每次调用它时,它都会是相同的,因为它是分配给不同变量的同一个对象,对吗?

然后对于一些等效的变量“参数”:

x(parameter) == x(parameter)
True

谢谢!

最佳答案

这些方法及其各自的对象实例位于不同的位置。例如我们有:

a = []
b = []

所以我们有:

>>> a.append == b.append
False

它们各自的位置如下:

>>> a.append
<built-in method append of list object at 0x7f7c7c97d560>
>>> b.append
<built-in method append of list object at 0x7f7c7c97d908>

注意不同的地址。

关于Python 列表和相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26579406/

相关文章:

python - H2OValueError : File ‪train_FD004. txt 不存在

python - 如何抓取缩短的网址并在 python 中获取实际域?

python - 调用 "dense_features_5"层时遇到异常

python - 在 Python 中拒绝列表的快速方法

java.lang.UnsupportedOperationException ImmutableList.remove 当我没有使用 ImmutableList 时

javascript - 在 JavaScript 中使用 == 的相等对象字符串

bash 字符串相等

python - 如何用python解析tsv文件?

python - Python 中的列表

java - "and ' 和有什么区别?