On Thu, Sep 14, 2006 at 11:14:20PM -0700, Bob Gailer wrote: > John Fouhy wrote: > > Generally, you should use a tuple when you have different things that > > you want to clump together to make one data structure. Whereas you > > should use a list when you have multiple things that are the same, > > that you want to iterate over. > > > Different perspective: tuples are immutable, lists are not. One may > change a list by various techniques; one may not change a tuple. >
Trying hard to be picky here ... It's good to remember that, although you cannot change a tupble itself, you can change the objects that the tuple references, *if* they are mutable. For example (in the ipython prompt): In [1]: d1 = {} In [2]: d2 = {} In [3]: t1 = (d1, d2) In [4]: In [4]: t1 Out[4]: ({}, {}) In [5]: t1[0]['name'] = 'dave' In [6]: In [6]: t1 Out[6]: ({'name': 'dave'}, {}) In [7]: > tuples may be used as dictionary keys; lists may not Good point. A dictionary with tuples as keys can be used to represent multi-dimensional, sparse arrays. > tuples are found on the right of % (formatting); lists are not A list can be used on the right side of the formatting operator, but python interprets it as a single object, not multiple objects to be fed into the formatting specifiers. So, for example, this gives an error: In [7]: 'item 1: %s and item 2: %s' % [11, 22] --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) /home/dkuhlman/<ipython console> TypeError: not enough arguments for format string In [8]: But, this does not: In [8]: 'item 1: %s' % [11, 22] Out[8]: 'item 1: [11, 22]' In [9]: Dave -- Dave Kuhlman http://www.rexx.com/~dkuhlman _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor