mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55:18 +00:00
#14840: Add a bit on the difference between tuples and lists. Initial patch by Zachary Ware.
This commit is contained in:
parent
14d99a1491
commit
f90ea1f0a0
2 changed files with 21 additions and 8 deletions
|
@ -349,17 +349,31 @@ A tuple consists of a number of values separated by commas, for instance::
|
||||||
... u = t, (1, 2, 3, 4, 5)
|
... u = t, (1, 2, 3, 4, 5)
|
||||||
>>> u
|
>>> u
|
||||||
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
|
((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))
|
||||||
|
>>> # Tuples are immutable:
|
||||||
|
... t[0] = 88888
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "<stdin>", line 1, in <module>
|
||||||
|
TypeError: 'tuple' object does not support item assignment
|
||||||
|
>>> # but they can contain mutable objects:
|
||||||
|
... v = ([1, 2, 3], [3, 2, 1])
|
||||||
|
>>> v
|
||||||
|
([1, 2, 3], [3, 2, 1])
|
||||||
|
|
||||||
|
|
||||||
As you see, on output tuples are always enclosed in parentheses, so that nested
|
As you see, on output tuples are always enclosed in parentheses, so that nested
|
||||||
tuples are interpreted correctly; they may be input with or without surrounding
|
tuples are interpreted correctly; they may be input with or without surrounding
|
||||||
parentheses, although often parentheses are necessary anyway (if the tuple is
|
parentheses, although often parentheses are necessary anyway (if the tuple is
|
||||||
part of a larger expression).
|
part of a larger expression). It is not possible to assign to the individual
|
||||||
|
items of a tuple, however it is possible to create tuples which contain mutable
|
||||||
|
objects, such as lists.
|
||||||
|
|
||||||
Tuples have many uses. For example: (x, y) coordinate pairs, employee records
|
Though tuples may seem similar to lists, they are often used in different
|
||||||
from a database, etc. Tuples, like strings, are immutable: it is not possible
|
situations and for different purposes.
|
||||||
to assign to the individual items of a tuple (you can simulate much of the same
|
Tuples are :term:`immutable`, and usually contain an heterogeneous sequence of
|
||||||
effect with slicing and concatenation, though). It is also possible to create
|
elements that are accessed via unpacking (see later in this section) or indexing
|
||||||
tuples which contain mutable objects, such as lists.
|
(or even by attribute in the case of :func:`namedtuples <collections.namedtuple>`).
|
||||||
|
Lists are :term:`mutable`, and their elements are usually homogeneous and are
|
||||||
|
accessed by iterating over the list.
|
||||||
|
|
||||||
A special problem is the construction of tuples containing 0 or 1 items: the
|
A special problem is the construction of tuples containing 0 or 1 items: the
|
||||||
syntax has some extra quirks to accommodate these. Empty tuples are constructed
|
syntax has some extra quirks to accommodate these. Empty tuples are constructed
|
||||||
|
@ -388,8 +402,6 @@ many variables on the left side of the equals sign as there are elements in the
|
||||||
sequence. Note that multiple assignment is really just a combination of tuple
|
sequence. Note that multiple assignment is really just a combination of tuple
|
||||||
packing and sequence unpacking.
|
packing and sequence unpacking.
|
||||||
|
|
||||||
.. XXX Add a bit on the difference between tuples and lists.
|
|
||||||
|
|
||||||
|
|
||||||
.. _tut-sets:
|
.. _tut-sets:
|
||||||
|
|
||||||
|
|
|
@ -986,6 +986,7 @@ Larry Wall
|
||||||
Kevin Walzer
|
Kevin Walzer
|
||||||
Rodrigo Steinmuller Wanderley
|
Rodrigo Steinmuller Wanderley
|
||||||
Greg Ward
|
Greg Ward
|
||||||
|
Zachary Ware
|
||||||
Barry Warsaw
|
Barry Warsaw
|
||||||
Steve Waterbury
|
Steve Waterbury
|
||||||
Bob Watson
|
Bob Watson
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue