小编典典

Python是否按字符串对切片进行切片?

python

我想知道我什么时候做类似的事情

a = "This could be a very large string..."
b = a[:10]

创建新字符串或返回视图/迭代器


阅读 168

收藏
2020-12-20

共1个答案

小编典典

Python会进行逐个切片,这意味着每次切片时(非常琐碎的切片(例如a[:])除外),它都会将所有数据复制到一个新的字符串对象中。

根据一位开发人员的说法,之所以做出此选择是因为

[按引用切片]方法更复杂,更难实现并且可能导致意外行为。

例如:

a =“带有500,000个字符的长字符串...”
b = a [0]
德拉

使用“按切片复制”设计,a可以立即释放字符串。尽管您只对第一个字符感兴趣,但按切片的设计会将500kB的字符串保留在内存中。

显然,如果您绝对 需要
一个字符串视图,则可以使用一个memoryview对象。

2020-12-20