>>> from timeit import Timer >>> t = Timer('[x for x in l[::-1]]', 'l = list(range(100000))') >>> t.timeit(number=1000) 5.549649953842163 >>> t = Timer('l.reverse(); [x for x in l]', 'l = list(range(100000))') >>> t.timeit(number=1000) 4.548457145690918 >>> t = Timer('[x for x in reversed(l)]', 'l = list(range(100000))') >>> t.timeit(number=1000) 4.428632974624634
Conclusion: reverse () is slightly faster than l.reverse () in a list with 100,000 elements. This, of course, is even more true if you do not actually overlap the entire list, and ceases to be true if you use the list more than once.
l[::-1] deprecated since 2.4, which introduced reversed() .
Lennart Regebro
source share