Created
September 21, 2017 07:47
-
-
Save lispc/682910e2c445b5fb33f59dd59f11dfb4 to your computer and use it in GitHub Desktop.
python list of lists speed
This file contains 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
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