Dasn  <[EMAIL PROTECTED]> wrote:
># size of 'dict.txt' is about 3.6M, 154563 lines
>f = open('dict.txt', 'r')
>print "Reading lines..."
>lines = f.readlines()
>print "Done."
 [ ... ]
>def sp1(lines):
>       """====> sp1() -- List-comprehension"""
>       return [s.split('\t') for s in lines]
 [ ... ]
>def sp4(lines):
>       """====> sp4() -- Not correct, but very fast"""
>       return map(str.split, lines)
>
>for num in xrange(5):
>       fname = 'sp%(num)s' % locals()
>       print eval(fname).__doc__
>       profile.run(fname+'(lines)')

>====> sp1() -- List-comprehension
>         154567 function calls in 12.240 CPU seconds
 [ ... ]
>====> sp4() -- Not correct, but very fast
>         5 function calls in 3.090 CPU seconds
 [ ... ]
>The problem is the default behavior of str.split should be more complex
>than str.split('\t'). If we could use the str.split('\t') in map(), the
>result would be witty. What do u guys think?

I think there's something weird going on -- sp4 should be making
154563 calls to str.split. So no wonder it goes faster -- it's
not doing any work.

How does [s.split() for s in lines] compare to sp2's
[s.split('\t') for s in lines] ?

-- 
\S -- [EMAIL PROTECTED] -- http://www.chaos.org.uk/~sion/
  ___  |  "Frankly I have no feelings towards penguins one way or the other"
  \X/  |    -- Arthur C. Clarke
   her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to