Skip to content

Instantly share code, notes, and snippets.

@lispc
Created September 21, 2017 07:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lispc/682910e2c445b5fb33f59dd59f11dfb4 to your computer and use it in GitHub Desktop.
Save lispc/682910e2c445b5fb33f59dd59f11dfb4 to your computer and use it in GitHub Desktop.
python list of lists speed
import random
import time
batch_size = 256
def merge1(l):
l = l / batch_size * batch_size
manifest = range(0, l)
batch_manifest = zip(*[iter(manifest)] * batch_size)
start_time = time.time()
result = list(sum(batch_manifest, ()))
end_time = time.time()
return end_time - start_time
def merge2(l):
l = l / batch_size * batch_size
manifest = range(0, l)
batch_manifest = zip(*[iter(manifest)] * batch_size)
start_time = time.time()
result = [item for batch in batch_manifest for item in batch]
'''
for i in batch_manifest:
for j in i:
result.append(j)
'''
end_time = time.time()
return end_time - start_time
def test():
test_range = [1000, 10000, 100000, 1000000]
for l in test_range:
print 'merge2', l, merge2(l)
for l in test_range:
print 'merge1', l, merge1(l)
if __name__ == '__main__':
test()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment