gpt4 book ai didi

python - Python 中的 split ('\n' ) 方法是如何实现的?

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:26 25 4
gpt4 key购买 nike

这是一个能够理解 Java 和 Python 之间差异的理论问题。要在 Java 中将文件内容读入数组,您需要知道行数,以便在声明数组时定义数组的大小。由于您无法提前知道,因此您需要应用一些技巧来克服该问题。

不过在 Python 中,列表可以是任意大小的,因此将文件内容读入列表可以通过以下方式完成:

lines = open('filename').read().split('\n')

lines = open('filename').readlines()

split('\n') 在这种情况下如何工作? Python 实现是否也在下面执行某种技巧(比如在需要时将数组的大小加倍等)?

如能提供任何有助于阐明这一点的信息,我们将不胜感激。

最佳答案

implementation of str.split() 内部调用 list.append(),后者又调用 internal function list_resize() .来自此函数源代码中的注释:

This over-allocates proportional to the list size, making room for additional growth. The over-allocation is mild, but is enough to give linear-time amortized behavior over a long sequence of appends() in the presence of a poorly-performing system realloc().

The growth pattern is: 0, 4, 8, 16, 25, 35, 46, 58, 72, 88, ...

关于python - Python 中的 split ('\n' ) 方法是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5667359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com