Python会进行逐个切片,这意味着每次切片时(非常琐碎的切片(例如a[:]
)除外),它都会将所有数据复制到一个新的字符串对象中。
根据一位开发人员的说法,之所以做出此选择是因为
[按引用切片]方法更复杂,更难实现并且可能导致意外行为。
例如:
a =“带有500,000个字符的长字符串...”
b = a [0]
德拉
使用“按切片复制”设计,a
可以立即释放字符串。尽管您只对第一个字符感兴趣,但按切片的设计会将500kB的字符串保留在内存中。
显然,如果您绝对 需要 一个字符串视图,则可以使用一个memoryview
对象。