Python 2.7中的string.split和string.join

string.split and string.join in Python 2.7

本问题已经有最佳答案,请猛点这里访问。

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

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

但是,在检查完之后,我发现这两个字符串都是不同的。我尝试使用string.join(string.split(song)) is songf is song,其中f被赋予值string.join(string.split(song)),两者都被评估为False。为什么会这样?


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

如果两者都相同,这是因为身份操作符is和相等操作符==之间的差异。

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

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

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