[Chicago] is there really no built-in file/iter split() thing?
Ian Bicking
ianb at colorstudy.com
Sat Dec 1 23:06:36 CET 2007
Not particularly apropos of the discussion, but I thought about split,
and whether it is advantageous to do:
if ';' in line:
parts = line.split(';')
Assuming that most lines won't have ; in them. "';' in line" is fairly
fast.
One thing I've noticed is that some string operations are fairly
efficient in this case, because they notice when they wouldn't do
anything and don't create a new string.
First, to make sure it's a string that doesn't get intern'd or anything
(I think, maybe, some small strings get reused):
>>> x = 'x'*1000
Now, .replace() works nicely:
>>> x.replace('&', '&') is x
True
>>> x.replace('x', 'y') is x
False
Concatenation also works:
>>> x + '' is x
True
But not split:
>>> x.split()[0] is x
False
--
Ian Bicking : ianb at colorstudy.com : http://blog.ianbicking.org
More information about the Chicago
mailing list