is comparison返回False,字符串使用相同的id

2024-04-18 17:50:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在玩Python is==操作符。据我所知,is操作符检查两个对象是否具有相同的id,但在我的例子中,操作符返回False,即使两个子字符串具有相同的id

代码如下:

#! /usr/bin/python3
# coding=utf-8
string = "HelloWorld"

print(id(string))    #140131089280176
print(id(string[0:5]))  #140131089251048
print(id(string[-10:-5]))   #140131089251048


print(string[0:5] == string[-10:-5])    #True
print(string[0:5] is string[-10:-5])    #False

子字符串与原始字符串的id不尽相同,但为什么is operator返回false和两个具有相同id的子字符串?你知道吗


Tags: 对象字符串代码idfalsestringbinis
1条回答
网友
1楼 · 发布于 2024-04-18 17:50:25

对我来说:

print(id(string[0:5]))
print(id(string[-10:-5]))  

具有不同的ID,因此,这些答案:

print(string[0:5] == string[-10:-5])    #True
print(string[0:5] is string[-10:-5])    #False

正如他们所期望的那样。你知道吗

你确定你没有犯错误吗?你知道吗

#我会把它作为评论发表,但现在还不能

相关问题 更多 >