Python 2.7中的string.split和string.join

Python 2.7中的string.split和string.join,python,python-2.7,Python,Python 2.7,我在读《如何像计算机科学家一样思考:使用Python学习》一书时,遇到了以下问题: 作为练习,描述string.join(string.split(song))和song之间的关系。它们对所有字符串都一样吗?他们什么时候会有所不同? (这首歌被定义为“西班牙的雨……”) 然而,在检查之后,我发现这两个字符串都是不同的。我尝试使用string.join(string.split(song))是song和f是song,其中f被赋值为string.join(string.split(song)),两者

我在读《如何像计算机科学家一样思考:使用Python学习》一书时,遇到了以下问题:

作为练习,描述string.join(string.split(song))和song之间的关系。它们对所有字符串都一样吗?他们什么时候会有所不同? (这首歌被定义为“西班牙的雨……”)


然而,在检查之后,我发现这两个字符串都是不同的。我尝试使用
string.join(string.split(song))是song
f是song
,其中f被赋值为string.join(string.split(song)),两者的计算结果均为
False
。为什么会这样?

您正在比较的字符串的实际值是多少

如果两者相同,这是因为标识运算符
is
和相等运算符
=
之间存在差异

简而言之,
is
在对象相同时产生
True
。因为在您的示例中创建了一个新字符串,所以它会生成
False

如果使用
==
将对字符串的字符进行深入比较,并返回
True


如果比较的字符串不相同,则无论是
=
还是
is
都不应产生
True

要比较的字符串的实际值是什么

如果两者相同,这是因为标识运算符
is
和相等运算符
=
之间存在差异

简而言之,
is
在对象相同时产生
True
。因为在您的示例中创建了一个新字符串,所以它会生成
False

如果使用
==
将对字符串的字符进行深入比较,并返回
True


如果比较的字符串不相同,则无论是
=
还是
is
都不应产生
True

要比较的字符串的实际值是什么

如果两者相同,这是因为标识运算符
is
和相等运算符
=
之间存在差异

简而言之,
is
在对象相同时产生
True
。因为在您的示例中创建了一个新字符串,所以它会生成
False

如果使用
==
将对字符串的字符进行深入比较,并返回
True


如果比较的字符串不相同,则无论是
=
还是
is
都不应产生
True

要比较的字符串的实际值是什么

如果两者相同,这是因为标识运算符
is
和相等运算符
=
之间存在差异

简而言之,
is
在对象相同时产生
True
。因为在您的示例中创建了一个新字符串,所以它会生成
False

如果使用
==
将对字符串的字符进行深入比较,并返回
True

如果比较的字符串不相同,则
=
is
都不应产生
True