Skip to content

Instantly share code, notes, and snippets.

@uskudnik
Last active August 2, 2016 12:23
Show Gist options
  • Save uskudnik/355a20734720748ada07271aa80e50a4 to your computer and use it in GitHub Desktop.
Save uskudnik/355a20734720748ada07271aa80e50a4 to your computer and use it in GitHub Desktop.
set([list of nubmers]) vs. {list of numbers}
## A _very_ naive comparison of set([list of numbers]) vs {list of numbers}
# set([list of numbers]) vs {list of numbers} results in ~25% performance improvements on simple lists for {list of numbers}:
====
> python -m timeit "{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}"
1000000 loops, best of 3: 0.911 usec per loop
> python -m timeit "{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}"
1000000 loops, best of 3: 0.901 usec per loop
> python -m timeit "{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}"
1000000 loops, best of 3: 0.924 usec per loop
> python -m timeit "set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21])"
1000000 loops, best of 3: 1.25 usec per loop
> python -m timeit "set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21])"
1000000 loops, best of 3: 1.25 usec per loop
> python -m timeit "set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21])"
1000000 loops, best of 3: 1.26 usec per loop
====
# Building a list of numbers _could_ accounts for (most of) the difference:
> python -m timeit "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]"
1000000 loops, best of 3: 0.228 usec per loop
> python -m timeit "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]"
1000000 loops, best of 3: 0.228 usec per loop
> python -m timeit "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]"
1000000 loops, best of 3: 0.23 usec per loop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment