On Wed, 11 Apr 2007 10:57:19 -0500, Chris Mellon <[EMAIL PROTECTED]> wrote: > > The primary use case for index on tuple is because people use them as > immutable lists. That's fine as far as it goes, but I want to know > what the justification is for using an immutable list, and if you have > one why you need to use index() on it. There's only 2 use cases I've > heard so far for that: certain types of binary parsing, which I don't > think is common enough to justify modification to the language core, > and third party libs returning silly things, which I *certainly* don't > think justifies changes to the language core.
In regard to unpacking binary data and similar uses, those are often perfomance sensitive, here is some benchmark data from timeit.Timer on looking for an item in a list/tuple via list.index() or list(tuple).index(). The best case scenario (short list) takes about a 20% performance hit. run time (sec) size runs list tuple ratio (t/l) 1000000 100 1.997614 5.526909 2.766755 100000 1000 2.049710 5.291704 2.581684 10000 10000 1.970400 2.714083 1.377428 1000 100000 2.325089 3.013624 1.296133 100 1000000 6.213748 7.661165 1.232938 10 10000000 44.970536 53.685698 1.193797 For whatever it's worth, I'm mildly in favor of index() and count() being added to tuples. Mike -- Michael Zawrotny Institute of Molecular Biophysics Florida State University | email: [EMAIL PROTECTED] Tallahassee, FL 32306-4380 | phone: (850) 644-0069 -- http://mail.python.org/mailman/listinfo/python-list