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