ishexdigit()
David M. Wilson
dw-google.com at botanicus.net
Wed Dec 31 14:51:58 EST 2003
More information about the Python-list mailing list
Wed Dec 31 14:51:58 EST 2003
- Previous message (by thread): ishexdigit()
- Next message (by thread): ishexdigit()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Uwe Schmitt <uwe.schmitt at procoders.net> wrote... > better/faster/more pythonic: > > return reduce(lambda a,b: a and ishexdigit(b), strng, True) How is it better, or faster, or more Pythonic? The only thing I can see here that is 'more Pythonic' is blatant iterator abuse, which does nothing for the readability or efficiency of the code. :) What happened to good old fashioned functions, eh? def is_hex(s, (z,n,a,f) = map(ord, '09af')): for c in s: o = ord(c) | 32 # OR lowercase bit. if not (( o >= z and o <= n ) or ( o >= a and o <= f )): return False return True This could of course be improved upon too. For: profile.run("[ func('CAFEBABEAAAABBBBCCCCDDDDEEEEFFFF') \ for x in xrange(500000) ]") profile.run("[ func('CAFEBABEAAAABBBBCCCCDDDDEEEEFXFF') \ for x in xrange(100000) ]") profile.run("[ func('CAFEXABEAAAABBBBCCCCDDDDEEEEFXFF') \ for x in xrange(100000) ]") The iterative version looked like this: 32500002 function calls in 227.260 CPU seconds 6300002 function calls in 42.990 CPU seconds 3800002 function calls in 26.700 CPU seconds The 'grass roots' version looked like this: 500002 function calls in 21.090 CPU seconds 100002 function calls in 3.810 CPU seconds 100002 function calls in 1.770 CPU seconds Sometimes I really wonder as to whether Python gets it poorly performing name from it's implementation or it's 'standard' idioms. :) > Greetings, Uwe Happy new year, if you aren't already there. Speaking of which, Taxi! David.
- Previous message (by thread): ishexdigit()
- Next message (by thread): ishexdigit()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list