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