[Tim] > huge.join('""') [Guido] > Points off for obscurity though! The Subject line was "Stupid Python Tricks" for a reason <wink>. Those who don't know the language inside-out should be tickled by figuring out why it even *works* (hint for the baffled: you have to view '""' as a sequence rather than as an atomic string). > My favorite for this is: > > '"%s"' % huge > > Worth a microbenchmark? Absolutely! I get: obvious 15.574 obscure 8.165 sprintf 8.133 after running: ITERS = 1000 indices = [0] * ITERS def obvious(huge): for i in indices: '"' + huge + '"' def obscure(huge): for i in indices: huge.join('""') def sprintf(huge): for i in indices: '"%s"' % huge def runtimes(huge): from time import clock for f in obvious, obscure, sprintf: start = clock() f(huge) finish = clock() print "%12s %7.3f" % (f.__name__, finish - start) runtimes("x" * 1000000) under current 2.1a1. Not a dead-quiet machine, but the difference is too small to care. Speed up huge.join attr lookup, and it would probably be faster <wink>. Hmm: if I boost ITERS high enough and cut back the size of huge, "obscure" eventually becomes *slower* than "obvious", and even if the "huge.join" lookup is floated out of the loop. I guess that points to the relative burden of calling a bound method. So, in real life, the huge.join approach may well be the slowest! >> not-entirely-sure-i'm-channeling-on-this-one-ly y'rs - tim > Give up the channeling for a while -- there's too much interference in > the air from the Microsoft threaded stdio debate still. :-) What debate? You need two arguably valid points of view for a debate to even start <wink>. gloating-in-victory-vicious-in-defeat-but-simply-unbearable-in- ambiguity-ly y'rs - tim
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4