我正在玩Python is
和==
运算符。据我所知,运算符是否检查两个对象是否具有相同的id,但在我的情况下,即使两个子串具有相同的id,运算符也会返回False。
以下是代码:
#! /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没有预期的相同,但为什么运算符返回false,其中2个子字符串具有相同的id?
答案 0 :(得分:0)
对我而言:
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
是应该期待的。
你确定你在这里没有弄错吗?
#我会将其作为评论发布,但还不能