【发布时间】:2015-03-23 22:23:55
【问题描述】:
我有一个 python 脚本,由于各种原因,它有一个相当大的字符串变量,比如 10mb 长。该字符串包含多行。
删除该字符串的第一行和最后一行的最快方法是什么?由于字符串的大小,操作越快越好;强调速度。该程序返回一个略小的字符串,没有第一行和最后一行。
'\n'.join(string_variable[-1].split('\n')[1:-1]) 是最简单的方法,但它非常慢,因为 split() 函数复制内存中的对象,而 join() 再次复制它。
示例字符串:
*** START OF DATA ***
data
data
data
*** END OF DATA ***
额外的功劳:如果中间没有数据,让这个程序不要阻塞;这是可选的,因为就我而言,不应该有一个没有数据的字符串。
【问题讨论】:
-
您是否可以控制字符串如何进入您的程序,例如:您是否正在使用
my_string = file_obj.read()来检索字符串?另外,您需要一次在内存中显示所有行,还是一次只需要一行?
标签: python string performance