Fixed reply:
So I implemented these functions as operators in CPython... the differences are 
insane!
> \>\>\> import timeit
> 
> # d + 1 vs list(d.values())[0]: 2133x speedup
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d + 1"])
> 2000000 loops, best of 5: 165 nsec per loop
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", 
> "list(d.values())[0]"])
> 1000 loops, best of 5: 352 usec per loop
> 
> # d - 1 vs list(d.values())[-1]: 2017x speedup
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d - 1"])
> 2000000 loops, best of 5: 168 nsec per loop
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", 
> "list(d.values())[-1]"])
> 1000 loops, best of 5: 354 usec per loop
> 
> # d * 1 vs list(d.keys())[0]: 3663x speedup
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d * 1"])
> 2000000 loops, best of 5: 166 nsec per loop
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", 
> "list(d.keys())[0]"])
> 1000 loops, best of 5: 608 usec per loop
> 
> # d / 1 vs list(d.keys())[-1]: 2163x speedup
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d / 1"])
> 2000000 loops, best of 5: 166 nsec per loop
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", 
> "list(d.keys())[-1]"])
> 1000 loops, best of 5: 359 usec per loop
> 
> # d >> 1 vs list(d.items())[0]: 15302x speedup
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d >> 1"])
> 1000000 loops, best of 5: 281 nsec per loop
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", 
> "list(d.items())[0]"])
> 50 loops, best of 5: 4.3 msec per loop
> 
> # d << 1 vs list(d.items())[-1]: 15357x speedup
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", "d << 1"])
> 1000000 loops, best of 5: 280 nsec per loop
> \>\>\> timeit.main(['-s', "d = {x: x+1 for x in range(10000)}", 
> "list(d.items())[-1]"])
> 50 loops, best of 5: 4.3 msec per loop
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/KL3AE62O2EPLF7H2XNQVAMNPO3I35BD4/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to