>>> 'hi'.split()[0] is 'hi'
True
>>> 'hi there'.split()[0] is 'hi'
False
>>> 'hi there again'.split()[0] is 'hi'
False
我的假设:
第一行只有一个元素,而其他两行有多个元素。我认为 Python 原始数据类型(例如 str
)在函数内部以值的形式存储在内存中,跨函数之间将分配不同的内存地址以简化内存管理。我认为 split()
就是其中之一,它通常会分配新的字符串。但同时也处理了输入不需要分割的边界情况(如 'hi'
),这时会直接返回原始字符串的引用。我的解释是否正确?