On Thu, Dec 15, 2011 at 5:16 PM, Terry
Reedy
<tjreedy@udel.edu>
wrote:
On 12/15/2011 3:42 PM, Ned Batchelder wrote:
This is another place where Python is inconsistent. We're
told, "lists
are for homogenous sequences of varying length, like a C
array; tuples
are for heterogenous aggregations of known length, like a
C struct."
I have not been told that for several years, and I am pretty
sure you will not find any such thing in the current docs. I
consider it pretty much obsolete, as the differences that
flowed from that idea are gone. In Python 3, tuples have all
the non-mutating sequence methods that list does. The
situation was much different in 1.4.
I strongly disagree. Being immutable sequences (i.e.
homogeneous) is a minor secondary role for tuples. Their
primary role remains to hold a small bunch of heterogeneous
values -- like namedtuple, but without needing forethought. A
good example are dictionary items -- these are (key, value)
pairs where for a given dict, the keys are all of the same
type (or of a small set of related types) and ditto for the
values, but the key type and the value types are unrelated.