On Tuesday 11 March 2003 09:11 pm, Guido van Rossum wrote: > I bet you can't prove the speed-up. Here's the script I used to test it: import timeit report = \ """ Size: %s Tuple Time: %s List Time: %s List Time - Tuple Time: %s """ if __name__ == '__main__': import sys if len(sys.argv) > 1: upperLimit = sys.argv[1] else: upperLimit = 10 for i in xrange(upperLimit): lst = range(i) tpl = tuple(lst) tupleTimer = timeit.Timer('%s in %r' % (upperLimit, tpl)) listTimer = timeit.Timer('%s in %r' % (upperLimit, lst)) minTupleTime = min(tupleTimer.repeat()) minListTime = min(listTimer.repeat()) difference = minListTime - minTupleTime print report % (i, minTupleTime, minListTime, difference) There seems to be a constant 1.3 usec or so difference between creating a tuple and creating a list. As I mentioned earlier, I seriously doubt it would have any significant impact on the overall execution speed of any non-trivial Python program, but it exists nonetheless. Maybe in the realm of 'low hanging fruit' it's the fruit that's fallen to the ground and begun to rot :) > Tuples are for heterogeneous data, list are for homogeneous data. > Tuples are *not* read-only lists. I understand this in a strictly typed language, but in Python, since lists can be just as heterogeneous as tuples, it's always seemed to me that the greatest difference between lists and tuples is the mutability and extensibility of lists. Jeremy
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4