On Fri, 17 Jun 2011 13:53:10 -0700, SherjilOzair wrote: > What has the community to say about this ? What is the best (fastest) > way to insert sorted in a list ?
if you're doing repeated insertions into an already sorted list, there's no question that the bisect module is the right way to do it. (Unless you have a very old version of Python, version 2.3 or older.) >>> from timeit import Timer >>> setup = """ ... L = list(range(10000)) + list(range(10100, 30000)) ... from bisect import insort ... def sort_insert(a, x): ... a.append(x) ... a.sort() ... """ >>> t_bisect = Timer("for i in range(10000, 10100): insort(L, i)", setup) >>> t_sort = Timer("for i in range(10000, 10100): sort_insert(L, i)", setup) >>> >>> t_sort.timeit(number=100) 19.430757999420166 >>> t_bisect.timeit(number=100) 0.3741610050201416 (For those unfamiliar with timeit, small numbers are faster.) -- Steven -- http://mail.python.org/mailman/listinfo/python-list