Python中的split(\'\\\\ n\')方法如何实现?
|
这是一个理论问题,可以理解Java和Python之间的差异。
要将文件的内容读入Java数组中,需要知道行数,以便在声明数组时定义数组的大小。而且由于您无法事先知道它,因此您需要应用一些技巧来克服该问题。
但是在Python中,列表可以是任意大小,因此可以通过以下方式将文件内容读入列表:
lines = open(\'filename\').read().split(\'\\n\')
要么
lines = open(\'filename\').readlines()
在这种情况下,split(\'\\ n \')如何工作? Python实现是否还在下面执行某种技巧(例如在需要时将数组的大小加倍等等)?
对此有任何启发的信息将不胜感激。
没有找到相关结果
已邀请:
5 个回复
奥李
的实现内部调用
,后者又调用内部函数
。从此函数的源代码中的注释: 这与列表大小成比例地过度分配,从而留出了空间 以获得额外的增长。过度分配是轻微的,但是 足以长期提供线性时间摊销行为 在表现不佳的情况下的appends()序列 系统realloc()。 增长模式是:0、4、8、16、25、35、46、58、72、88,...
蹄渭信妥扳
朗排谎纷瘟
细屠截殴些
公藕
使用sep作为分隔符字符串,返回字符串中单词的列表。如果给出maxsplit,则最多完成maxsplit分割。 (因此,列表最多包含maxsplit + 1个元素)。如果未指定maxsplit,则分割数没有限制(进行所有可能的分割)。连续定界符未分组在一起,因此被视为定界空字符串(例如
返回
。 sep参数可以包含多个字符 例如,
返回
。 使用指定的分隔符分割空字符串将返回
。 docs.python.org