I suspect, but do not know, that an approach using.partition
and.rpartition
methods would be faster than anything offered so far (and avoid conditional logic). I m looking for an answer that implements and explains this, and/or an answer showing timing results for the various approaches suggested.
我有一个 python 脚本, 出于各种原因, 它有一个变量, 是一个相当大的字符串, 比如 10mb 长。 这个字符串包含多个行 。
清除此字符串的第一行和最后一行的最快方法是什么? 由于字符串的大小, 操作的速度越快, 速度越好; 重点是速度。 程序返回一个略小的字符串, 扫描第一行和最后一行 。
"
".join(s.split("
")[1:-1])
is the easiest way to do this, but it s extremely slow because the split()
function copies the object in memory, and the join()
copies it again.
示例字符串 :
*** START OF DATA ***
data
data
data
*** END OF DATA ***
额外信用: 如果中间没有数据, 这个程序就不会被扼杀; 这是可选的, 因为对于我来说, 不应该有一个字符串, 中间没有数据 。