how to join array of integers?

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Sat Sep 15 20:28:56 EDT 2007


On Sat, 15 Sep 2007 16:07:07 +0000, Grant Edwards wrote:


> It's nice people have invented so many ways to spell the builting "map"
> ;)
> 
>>>> ",".join(map(str,[1,2,3]))
> '1,2,3'


The oldest solution, and if not the fastest, at least neck-and-neck with 
the list comprehension.

>>> timeit.Timer("', '.join(map(str, [1,2,3]))", "").repeat()
[5.0320308208465576, 4.1513419151306152, 4.0970909595489502]


For those who missed my earlier post:

list comp, best of three for one million iterations: 4.53 seconds
generator expression: 10.52 seconds
itertools.imap: 8.52 seconds

Your mileage may vary.

I think it is a crying shame that Guido's prejudice against functional 
programming seems to have increased over the years, instead of decreased. 
Iterators are wonderful tools, but professional tradesmen use more than 
one sort of hammer. (There are claw hammers and ball peen hammers and 
tack hammers and wooden mallets and...)

"One obvious way to do it" should not mean "force everyone to use a tack 
hammer to drive in nails, because it's the only hammer in the tool box". 
It should mean "it's obvious, use the tack hammer to drive in tacks and 
the claw hammer for carpentry and the wooden mallet for beating out dints 
in sheet metal and..."


-- 
Steven.



More information about the Python-list mailing list