我刚刚启动python,我了解到,当您将变量设置为等于字符串之类的对象类型时,它将使它们等效,但是我想知道为什么'abc'=='abc'是,它会检查吗两个字符串的存储位置,看看它们是否具有相同的位置?还是python检查字符串的实际内部以查看每个字符是否匹配?
我知道这是一个基本的python问题,我理解为什么代码会输出我们看到的结果,但是我想知道当您只使用相同结构的数据类型时python如何检查相等性。
'abc' == 'abc' #Output is True
'ab' == 'abc' #Output is False
答案 0 :(得分:0)
相等运算符==
检查是否相等。 a
和b
是相同的字符串吗?
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“最后一个结果的原因是不可变的对象被锁住了,所以它不会复制等效字符串的多个副本。”