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

Lej*_*lek 4 python split

这是一个能够理解Java和Python之间差异的理论问题.要使用Java将文件内容读入数组,您需要知道行数,以便在声明数组时定义数组的大小.而且因为你事先无法知道,你需要运用一些技巧来克服这个问题.

但是在Python中,列表可以是任何大小,因此将文件内容读入列表可以按以下方式完成:

lines = open('filename').read().split('\n')
Run Code Online (Sandbox Code Playgroud)

要么

lines = open('filename').readlines()
Run Code Online (Sandbox Code Playgroud)

split('\n')如何在这个场合工作?Python实现是否也在下面执行某些技巧(例如在需要时将数组大小加倍等)?

任何有关这方面的信息都将非常感激.

Sve*_*ach 8

内部调用的实现,str.split() list.append()它又调用内部函数list_resize().从这个函数的源代码中的注释:

这与列表大小成比例地过度分配,为额外增长腾出空间.过度分配是温和的,但足以在存在性能不佳的系统realloc()的情况下在长序列的appends()上给出线性时间摊销行为.

增长模式为:0,4,8,16,25,35,46,58,72,88 ......