-1

我刚开始python,我知道当你设置一个变量等于一个对象类型(如字符串)时,它会使它们等价,但我想知道为什么'abc'=='abc'是真的,它是否检查内存位置两个字符串,看看他们有相同的位置?或者 python 是否检查字符串的实际内部以查看每个字符是否与另一个字符匹配?

我知道这是一个基本的 Python 问题,并且我理解为什么代码会输出我们看到的结果,但我想知道当您只使用具有相同构造的数据类型时,python 如何检查相等性。

'abc' == 'abc' #Output is True
'ab' == 'abc' #Output is False
4

1 回答 1

0

相等运算符==检查相等性。是ab同一个字符串吗?

a = [1,2,3]
b = [1,2,3]
a == b  # True
a is b  # False

有一个is关键字可以检查内存位置。

a = [1,2,3]
b = [1,2,3]
a is b # False
c = a
a is c  # True

值得注意的是,字符串与is关键字一起使用时会有所不同。

a = '123'
b = '123'
a == b  # True
a is b  # True

编辑:来自@Barmar“最后一个结果的原因是不可变对象被实习,所以它不会制作等效字符串的多个副本。”

于 2019-06-20T20:08:45.657 回答