Steven D'Aprano <ste...@remove.this.cybersource.com.au> writes: > On Tue, 09 Jun 2009 09:43:45 +1000, Ben Finney wrote: > > > Use a list when the semantic meaning of an item doesn't depend on > > all the other items: it's “only” a collection of values. > > > > Your list of message codes is a good example: if a value appears at > > index 3, that doesn't make it mean something different from the same > > value appearing at index 2. > > That advice would seem to imply that lists shouldn't be ordered.
No such implication. Order is important in a list, it just doesn't change the semantic meaning of the value. > If a list of values has an order, it implies that "first place" (index > 0) is different from "second place", by virtue of the positions they > appear in the list. The lists: > > presidential_candidates_sorted_by_votes = ['Obama', 'McCain'] > presidential_candidates_sorted_by_votes = ['McCain', 'Obama'] > > have very different meanings. But the semantic meaning if each value is unchanged: each is still a presidential candidate's surname. The additional semantic meaning of putting it in a list is no more than the position in the sequence. A list is the right choice, for that reason. Whereas, for example, in this tuple: dodge_city = (1781, 1870, 1823) (population, feet_above_sea_level, establishment_year) = dodge_city each index in the sequence implies something very different about each value. The semantic meaning of each index is *more* than just the position in the sequence; it matters *for interpreting that component*, and that component would not mean the same thing in a different index position. A tuple is the right choice, for that reason. -- \ “Are you pondering what I'm pondering?” “Umm, I think so, Don | `\ Cerebro, but, umm, why would Sophia Loren do a musical?” | _o__) —_Pinky and The Brain_ | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list