about python 3:<p><pre><code> $ python
Python 3.3.3 (default, Nov 26 2013, 13:33:18)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import timeit
>>> timeit.repeat('for i in range(100): i**2', repeat=3, number=100000)
[4.451958370991633, 4.446133581004688, 4.4439384159923065]
>>> timeit.repeat('for i in range(100): pow(i,2)', repeat=3, number=100000)
[5.343420933000743, 5.341413081012433, 5.3455389970040414]
>>> timeit.repeat('for i in range(100): i*i', repeat=3, number=100000)
[0.8348780410015024, 0.8323301089985762, 0.8313860019989079]
$ python2
Python 2.7.6 (default, Nov 26 2013, 12:52:49)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import timeit
>>> timeit.repeat('for i in range(100): i**2', repeat=3, number=100000)
[0.9710979461669922, 0.9630119800567627, 0.9619340896606445]
>>> timeit.repeat('for i in range(100): pow(i,2)', repeat=3, number=100000)
[1.7429649829864502, 1.7306430339813232, 1.729590892791748]
>>> timeit.repeat('for i in range(100): i*i', repeat=3, number=100000)
[0.6579899787902832, 0.6526930332183838, 0.6540830135345459]
$ python -m timeit '"-".join(str(n) for n in range(100))'; python -m timeit '"-".join([str(n) for n in range(100)])'; python -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 3: 49.4 usec per loop
10000 loops, best of 3: 40.6 usec per loop
10000 loops, best of 3: 32.8 usec per loop
$ python2 -m timeit '"-".join(str(n) for n in range(100))'; python2 -m timeit '"-".join([str(n) for n in range(100)])'; python2 -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 3: 30.2 usec per loop
10000 loops, best of 3: 25 usec per loop
10000 loops, best of 3: 19.4 usec per loop
$ uname -rom
3.12.6-1-ARCH x86_64 GNU/Linux</code></pre>