Created
June 6, 2015 20:08
-
-
Save mhavard999/29ed701c7c3281beac15 to your computer and use it in GitHub Desktop.
Python Benchmarks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from timeit import timeit | |
from random import choice, randint | |
from string import ascii_letters | |
# random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)] | |
def add2dict(random_keys): | |
s = {} | |
for key in random_keys: | |
s[key] = 1 | |
return s | |
def add2set(random_keys): | |
s = set() | |
for key in random_keys: | |
s.add(key) | |
return s | |
def iterate_over_dict(s): | |
newl = [] | |
for key in s.keys(): | |
newl.append({ | |
'dogs' : 'cats', | |
'birds' : 'bees', | |
'bags' : 'bogs' | |
}) | |
return newl | |
def iterate_over_set(s): | |
newl = [] | |
for key in s: | |
newl.append({ | |
'dogs' : 'cats', | |
'birds' : 'bees', | |
'bags' : 'bogs' | |
}) | |
return newl | |
def add2list(random_keys): | |
l = [] | |
for key in random_keys: | |
l.append(key) | |
return l | |
def iterate_over_list(l): | |
newl = [] | |
for key in l: | |
newl.append({ | |
'dogs' : 'cats', | |
'birds' : 'bees', | |
'bags' : 'bogs' | |
}) | |
return newl | |
print 'add2dict' | |
print timeit("add2dict(random_keys)", | |
setup="from __main__ import add2dict; from random import choice, randint; from string import ascii_letters; random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)]", | |
number=50000) | |
print 'add2list' | |
print timeit("add2list(random_keys)", | |
setup="from __main__ import add2list; from random import choice, randint; from string import ascii_letters; random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)]", | |
number=50000) | |
print 'add2set' | |
print timeit("add2set(random_keys)", | |
setup="from __main__ import add2set; from random import choice, randint; from string import ascii_letters; random_keys = [''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)]", | |
number=50000) | |
print '\n\n-------\n\n' | |
print 'iterate_over_dict' | |
print timeit("iterate_over_dict(s)", | |
setup="from __main__ import iterate_over_dict, add2dict; from random import choice, randint; from string import ascii_letters; s = add2dict([''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)])", | |
number=10000) | |
print 'iterate_over_list' | |
print timeit("iterate_over_list(s)", | |
setup="from __main__ import iterate_over_list, add2list; from random import choice, randint; from string import ascii_letters; s = add2list([''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)])", | |
number=10000) | |
print 'iterate_over_set' | |
print timeit("iterate_over_set(s)", | |
setup="from __main__ import iterate_over_set, add2set; from random import choice, randint; from string import ascii_letters; s = add2set([''.join([choice(ascii_letters) for i in range(randint(4,30))]) for i in range(10000)])", | |
number=10000) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment