mirror of https://github.com/python/cpython
In stdtypes.rst, move methods under class directives where applicable
This commit is contained in:
parent
f466c2a247
commit
54718dd691
|
@ -1502,161 +1502,162 @@ The constructors for both classes work the same:
|
|||
sets, the inner sets must be :class:`frozenset` objects. If *iterable* is
|
||||
not specified, a new empty set is returned.
|
||||
|
||||
Instances of :class:`set` and :class:`frozenset` provide the following
|
||||
operations:
|
||||
Instances of :class:`set` and :class:`frozenset` provide the following
|
||||
operations:
|
||||
|
||||
.. describe:: len(s)
|
||||
.. describe:: len(s)
|
||||
|
||||
Return the cardinality of set *s*.
|
||||
Return the cardinality of set *s*.
|
||||
|
||||
.. describe:: x in s
|
||||
.. describe:: x in s
|
||||
|
||||
Test *x* for membership in *s*.
|
||||
Test *x* for membership in *s*.
|
||||
|
||||
.. describe:: x not in s
|
||||
.. describe:: x not in s
|
||||
|
||||
Test *x* for non-membership in *s*.
|
||||
Test *x* for non-membership in *s*.
|
||||
|
||||
.. method:: set.isdisjoint(other)
|
||||
.. method:: isdisjoint(other)
|
||||
|
||||
Return True if the set has no elements in common with *other*.
|
||||
Sets are disjoint if and only if their interesection is the empty set.
|
||||
Return True if the set has no elements in common with *other*. Sets are
|
||||
disjoint if and only if their interesection is the empty set.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
.. versionadded:: 2.6
|
||||
|
||||
.. method:: set.issubset(other)
|
||||
set <= other
|
||||
.. method:: issubset(other)
|
||||
set <= other
|
||||
|
||||
Test whether every element in the set is in *other*.
|
||||
Test whether every element in the set is in *other*.
|
||||
|
||||
.. method:: set < other
|
||||
.. method:: set < other
|
||||
|
||||
Test whether the set is a true subset of *other*, that is,
|
||||
``set <= other and set != other``.
|
||||
Test whether the set is a true subset of *other*, that is,
|
||||
``set <= other and set != other``.
|
||||
|
||||
.. method:: set.issuperset(other)
|
||||
set >= other
|
||||
.. method:: issuperset(other)
|
||||
set >= other
|
||||
|
||||
Test whether every element in *other* is in the set.
|
||||
Test whether every element in *other* is in the set.
|
||||
|
||||
.. method:: set > other
|
||||
.. method:: set > other
|
||||
|
||||
Test whether the set is a true superset of *other*, that is,
|
||||
``set >= other and set != other``.
|
||||
Test whether the set is a true superset of *other*, that is, ``set >=
|
||||
other and set != other``.
|
||||
|
||||
.. method:: set.union(other)
|
||||
set | other
|
||||
.. method:: union(other)
|
||||
set | other
|
||||
|
||||
Return a new set with elements from both sets.
|
||||
Return a new set with elements from both sets.
|
||||
|
||||
.. method:: set.intersection(other)
|
||||
set & other
|
||||
.. method:: intersection(other)
|
||||
set & other
|
||||
|
||||
Return a new set with elements common to both sets.
|
||||
Return a new set with elements common to both sets.
|
||||
|
||||
.. method:: set.difference(other)
|
||||
set - other
|
||||
.. method:: difference(other)
|
||||
set - other
|
||||
|
||||
Return a new set with elements in the set that are not in *other*.
|
||||
Return a new set with elements in the set that are not in *other*.
|
||||
|
||||
.. method:: set.symmetric_difference(other)
|
||||
set ^ other
|
||||
.. method:: symmetric_difference(other)
|
||||
set ^ other
|
||||
|
||||
Return a new set with elements in either the set or *other* but not both.
|
||||
Return a new set with elements in either the set or *other* but not both.
|
||||
|
||||
.. method:: set.copy()
|
||||
.. method:: copy()
|
||||
|
||||
Return a new set with a shallow copy of *s*.
|
||||
Return a new set with a shallow copy of *s*.
|
||||
|
||||
|
||||
Note, the non-operator versions of :meth:`union`, :meth:`intersection`,
|
||||
:meth:`difference`, and :meth:`symmetric_difference`, :meth:`issubset`, and
|
||||
:meth:`issuperset` methods will accept any iterable as an argument. In
|
||||
contrast, their operator based counterparts require their arguments to be sets.
|
||||
This precludes error-prone constructions like ``set('abc') & 'cbs'`` in favor of
|
||||
the more readable ``set('abc').intersection('cbs')``.
|
||||
Note, the non-operator versions of :meth:`union`, :meth:`intersection`,
|
||||
:meth:`difference`, and :meth:`symmetric_difference`, :meth:`issubset`, and
|
||||
:meth:`issuperset` methods will accept any iterable as an argument. In
|
||||
contrast, their operator based counterparts require their arguments to be
|
||||
sets. This precludes error-prone constructions like ``set('abc') & 'cbs'``
|
||||
in favor of the more readable ``set('abc').intersection('cbs')``.
|
||||
|
||||
Both :class:`set` and :class:`frozenset` support set to set comparisons. Two
|
||||
sets are equal if and only if every element of each set is contained in the
|
||||
other (each is a subset of the other). A set is less than another set if and
|
||||
only if the first set is a proper subset of the second set (is a subset, but is
|
||||
not equal). A set is greater than another set if and only if the first set is a
|
||||
proper superset of the second set (is a superset, but is not equal).
|
||||
Both :class:`set` and :class:`frozenset` support set to set comparisons. Two
|
||||
sets are equal if and only if every element of each set is contained in the
|
||||
other (each is a subset of the other). A set is less than another set if and
|
||||
only if the first set is a proper subset of the second set (is a subset, but
|
||||
is not equal). A set is greater than another set if and only if the first set
|
||||
is a proper superset of the second set (is a superset, but is not equal).
|
||||
|
||||
Instances of :class:`set` are compared to instances of :class:`frozenset` based
|
||||
on their members. For example, ``set('abc') == frozenset('abc')`` returns
|
||||
``True`` and so does ``set('abc') in set([frozenset('abc')])``.
|
||||
Instances of :class:`set` are compared to instances of :class:`frozenset`
|
||||
based on their members. For example, ``set('abc') == frozenset('abc')``
|
||||
returns ``True`` and so does ``set('abc') in set([frozenset('abc')])``.
|
||||
|
||||
The subset and equality comparisons do not generalize to a complete ordering
|
||||
function. For example, any two disjoint sets are not equal and are not subsets
|
||||
of each other, so *all* of the following return ``False``: ``a<b``, ``a==b``,
|
||||
or ``a>b``. Accordingly, sets do not implement the :meth:`__cmp__` method.
|
||||
The subset and equality comparisons do not generalize to a complete ordering
|
||||
function. For example, any two disjoint sets are not equal and are not
|
||||
subsets of each other, so *all* of the following return ``False``: ``a<b``,
|
||||
``a==b``, or ``a>b``. Accordingly, sets do not implement the :meth:`__cmp__`
|
||||
method.
|
||||
|
||||
Since sets only define partial ordering (subset relationships), the output of
|
||||
the :meth:`list.sort` method is undefined for lists of sets.
|
||||
Since sets only define partial ordering (subset relationships), the output of
|
||||
the :meth:`list.sort` method is undefined for lists of sets.
|
||||
|
||||
Set elements, like dictionary keys, must be :term:`hashable`.
|
||||
Set elements, like dictionary keys, must be :term:`hashable`.
|
||||
|
||||
Binary operations that mix :class:`set` instances with :class:`frozenset` return
|
||||
the type of the first operand. For example: ``frozenset('ab') | set('bc')``
|
||||
returns an instance of :class:`frozenset`.
|
||||
Binary operations that mix :class:`set` instances with :class:`frozenset`
|
||||
return the type of the first operand. For example: ``frozenset('ab') |
|
||||
set('bc')`` returns an instance of :class:`frozenset`.
|
||||
|
||||
The following table lists operations available for :class:`set` that do not
|
||||
apply to immutable instances of :class:`frozenset`:
|
||||
The following table lists operations available for :class:`set` that do not
|
||||
apply to immutable instances of :class:`frozenset`:
|
||||
|
||||
.. method:: set.update(other)
|
||||
set |= other
|
||||
.. method:: update(other)
|
||||
set |= other
|
||||
|
||||
Update the set, adding elements from *other*.
|
||||
Update the set, adding elements from *other*.
|
||||
|
||||
.. method:: set.intersection_update(other)
|
||||
set &= other
|
||||
.. method:: intersection_update(other)
|
||||
set &= other
|
||||
|
||||
Update the set, keeping only elements found in it and *other*.
|
||||
Update the set, keeping only elements found in it and *other*.
|
||||
|
||||
.. method:: set.difference_update(other)
|
||||
set -= other
|
||||
.. method:: difference_update(other)
|
||||
set -= other
|
||||
|
||||
Update the set, removing elements found in *other*.
|
||||
Update the set, removing elements found in *other*.
|
||||
|
||||
.. method:: set.symmetric_difference_update(other)
|
||||
set ^= other
|
||||
.. method:: symmetric_difference_update(other)
|
||||
set ^= other
|
||||
|
||||
Update the set, keeping only elements found in either set, but not in both.
|
||||
Update the set, keeping only elements found in either set, but not in both.
|
||||
|
||||
.. method:: set.add(elem)
|
||||
.. method:: add(elem)
|
||||
|
||||
Add element *elem* to the set.
|
||||
Add element *elem* to the set.
|
||||
|
||||
.. method:: set.remove(elem)
|
||||
.. method:: remove(elem)
|
||||
|
||||
Remove element *elem* from the set. Raises :exc:`KeyError` if *elem* is not
|
||||
contained in the set.
|
||||
Remove element *elem* from the set. Raises :exc:`KeyError` if *elem* is
|
||||
not contained in the set.
|
||||
|
||||
.. method:: set.discard(elem)
|
||||
.. method:: discard(elem)
|
||||
|
||||
Remove element *elem* from the set if it is present.
|
||||
Remove element *elem* from the set if it is present.
|
||||
|
||||
.. method:: set.pop()
|
||||
.. method:: pop()
|
||||
|
||||
Remove and return an arbitrary element from the set. Raises :exc:`KeyError`
|
||||
if the set is empty.
|
||||
Remove and return an arbitrary element from the set. Raises
|
||||
:exc:`KeyError` if the set is empty.
|
||||
|
||||
.. method:: set.clear()
|
||||
.. method:: clear()
|
||||
|
||||
Remove all elements from the set.
|
||||
Remove all elements from the set.
|
||||
|
||||
|
||||
Note, the non-operator versions of the :meth:`update`,
|
||||
:meth:`intersection_update`, :meth:`difference_update`, and
|
||||
:meth:`symmetric_difference_update` methods will accept any iterable as an
|
||||
argument.
|
||||
Note, the non-operator versions of the :meth:`update`,
|
||||
:meth:`intersection_update`, :meth:`difference_update`, and
|
||||
:meth:`symmetric_difference_update` methods will accept any iterable as an
|
||||
argument.
|
||||
|
||||
Note, the *elem* argument to the :meth:`__contains__`, :meth:`remove`, and
|
||||
:meth:`discard` methods may be a set. To support searching for an equivalent
|
||||
frozenset, the *elem* set is temporarily mutated during the search and then
|
||||
restored. During the search, the *elem* set should not be read or mutated
|
||||
since it does not have a meaningful value.
|
||||
Note, the *elem* argument to the :meth:`__contains__`, :meth:`remove`, and
|
||||
:meth:`discard` methods may be a set. To support searching for an equivalent
|
||||
frozenset, the *elem* set is temporarily mutated during the search and then
|
||||
restored. During the search, the *elem* set should not be read or mutated
|
||||
since it does not have a meaningful value.
|
||||
|
||||
|
||||
.. seealso::
|
||||
|
@ -1733,159 +1734,162 @@ pairs within braces, for example: ``{'jack': 4098, 'sjoerd': 4127}`` or ``{4098:
|
|||
Support for building a dictionary from keyword arguments added.
|
||||
|
||||
|
||||
These are the operations that dictionaries support (and therefore, custom mapping
|
||||
types should support too):
|
||||
These are the operations that dictionaries support (and therefore, custom
|
||||
mapping types should support too):
|
||||
|
||||
.. describe:: len(d)
|
||||
.. describe:: len(d)
|
||||
|
||||
Return the number of items in the dictionary *d*.
|
||||
Return the number of items in the dictionary *d*.
|
||||
|
||||
.. describe:: d[key]
|
||||
.. describe:: d[key]
|
||||
|
||||
Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key* is
|
||||
not in the map.
|
||||
|
||||
.. versionadded:: 2.5
|
||||
If a subclass of dict defines a method :meth:`__missing__`, if the key
|
||||
*key* is not present, the ``d[key]`` operation calls that method with the
|
||||
key *key* as argument. The ``d[key]`` operation then returns or raises
|
||||
whatever is returned or raised by the ``__missing__(key)`` call if the key
|
||||
is not present. No other operations or methods invoke
|
||||
:meth:`__missing__`. If :meth:`__missing__` is not defined,
|
||||
:exc:`KeyError` is raised. :meth:`__missing__` must be a method; it
|
||||
cannot be an instance variable. For an example, see
|
||||
:class:`collections.defaultdict`.
|
||||
Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key*
|
||||
is not in the map.
|
||||
|
||||
.. describe:: d[key] = value
|
||||
.. versionadded:: 2.5
|
||||
If a subclass of dict defines a method :meth:`__missing__`, if the key
|
||||
*key* is not present, the ``d[key]`` operation calls that method with
|
||||
the key *key* as argument. The ``d[key]`` operation then returns or
|
||||
raises whatever is returned or raised by the ``__missing__(key)`` call
|
||||
if the key is not present. No other operations or methods invoke
|
||||
:meth:`__missing__`. If :meth:`__missing__` is not defined,
|
||||
:exc:`KeyError` is raised. :meth:`__missing__` must be a method; it
|
||||
cannot be an instance variable. For an example, see
|
||||
:class:`collections.defaultdict`.
|
||||
|
||||
Set ``d[key]`` to *value*.
|
||||
.. describe:: d[key] = value
|
||||
|
||||
.. describe:: del d[key]
|
||||
Set ``d[key]`` to *value*.
|
||||
|
||||
Remove ``d[key]`` from *d*. Raises a :exc:`KeyError` if *key* is not in the
|
||||
map.
|
||||
.. describe:: del d[key]
|
||||
|
||||
.. describe:: key in d
|
||||
Remove ``d[key]`` from *d*. Raises a :exc:`KeyError` if *key* is not in the
|
||||
map.
|
||||
|
||||
Return ``True`` if *d* has a key *key*, else ``False``.
|
||||
.. describe:: key in d
|
||||
|
||||
.. versionadded:: 2.2
|
||||
Return ``True`` if *d* has a key *key*, else ``False``.
|
||||
|
||||
.. describe:: key not in d
|
||||
.. versionadded:: 2.2
|
||||
|
||||
Equivalent to ``not key in d``.
|
||||
.. describe:: key not in d
|
||||
|
||||
.. versionadded:: 2.2
|
||||
Equivalent to ``not key in d``.
|
||||
|
||||
.. method:: dict.clear()
|
||||
.. versionadded:: 2.2
|
||||
|
||||
Remove all items from the dictionary.
|
||||
.. method:: clear()
|
||||
|
||||
.. method:: dict.copy()
|
||||
Remove all items from the dictionary.
|
||||
|
||||
Return a shallow copy of the dictionary.
|
||||
.. method:: copy()
|
||||
|
||||
.. method:: dict.fromkeys(seq[, value])
|
||||
Return a shallow copy of the dictionary.
|
||||
|
||||
Create a new dictionary with keys from *seq* and values set to *value*.
|
||||
.. method:: fromkeys(seq[, value])
|
||||
|
||||
:func:`fromkeys` is a class method that returns a new dictionary. *value*
|
||||
defaults to ``None``.
|
||||
Create a new dictionary with keys from *seq* and values set to *value*.
|
||||
|
||||
.. versionadded:: 2.3
|
||||
:func:`fromkeys` is a class method that returns a new dictionary. *value*
|
||||
defaults to ``None``.
|
||||
|
||||
.. method:: dict.get(key[, default])
|
||||
.. versionadded:: 2.3
|
||||
|
||||
Return the value for *key* if *key* is in the dictionary, else *default*. If
|
||||
*default* is not given, it defaults to ``None``, so that this method never
|
||||
raises a :exc:`KeyError`.
|
||||
.. method:: get(key[, default])
|
||||
|
||||
.. method:: dict.has_key(key)
|
||||
Return the value for *key* if *key* is in the dictionary, else *default*.
|
||||
If *default* is not given, it defaults to ``None``, so that this method
|
||||
never raises a :exc:`KeyError`.
|
||||
|
||||
``d.has_key(key)`` is equivalent to ``key in d``, but deprecated.
|
||||
.. method:: has_key(key)
|
||||
|
||||
.. method:: dict.items()
|
||||
``dict.has_key(key)`` is equivalent to ``key in d``, but deprecated.
|
||||
|
||||
Return a copy of the dictionary's list of ``(key, value)`` pairs.
|
||||
.. method:: items()
|
||||
|
||||
.. note::
|
||||
Return a copy of the dictionary's list of ``(key, value)`` pairs.
|
||||
|
||||
Keys and values are listed in an arbitrary order which is non-random, varies
|
||||
across Python implementations, and depends on the dictionary's history of
|
||||
insertions and deletions. If :meth:`items`, :meth:`keys`, :meth:`values`,
|
||||
:meth:`iteritems`, :meth:`iterkeys`, and :meth:`itervalues` are called with no
|
||||
intervening modifications to the dictionary, the lists will directly correspond.
|
||||
This allows the creation of ``(value, key)`` pairs using :func:`zip`: ``pairs =
|
||||
zip(d.values(), d.keys())``. The same relationship holds for the
|
||||
:meth:`iterkeys` and :meth:`itervalues` methods: ``pairs = zip(d.itervalues(),
|
||||
d.iterkeys())`` provides the same value for ``pairs``. Another way to create the
|
||||
same list is ``pairs = [(v, k) for (k, v) in d.iteritems()]``.
|
||||
.. note::
|
||||
|
||||
.. method:: dict.iteritems()
|
||||
Keys and values are listed in an arbitrary order which is non-random,
|
||||
varies across Python implementations, and depends on the dictionary's
|
||||
history of insertions and deletions. If :meth:`items`, :meth:`keys`,
|
||||
:meth:`values`, :meth:`iteritems`, :meth:`iterkeys`, and
|
||||
:meth:`itervalues` are called with no intervening modifications to the
|
||||
dictionary, the lists will directly correspond. This allows the
|
||||
creation of ``(value, key)`` pairs using :func:`zip`: ``pairs =
|
||||
zip(d.values(), d.keys())``. The same relationship holds for the
|
||||
:meth:`iterkeys` and :meth:`itervalues` methods: ``pairs =
|
||||
zip(d.itervalues(), d.iterkeys())`` provides the same value for
|
||||
``pairs``. Another way to create the same list is ``pairs = [(v, k) for
|
||||
(k, v) in d.iteritems()]``.
|
||||
|
||||
Return an iterator over the dictionary's ``(key, value)`` pairs.
|
||||
See the note for :meth:`dict.items`.
|
||||
.. method:: iteritems()
|
||||
|
||||
.. versionadded:: 2.2
|
||||
Return an iterator over the dictionary's ``(key, value)`` pairs. See the
|
||||
note for :meth:`dict.items`.
|
||||
|
||||
.. method:: dict.iterkeys()
|
||||
.. versionadded:: 2.2
|
||||
|
||||
Return an iterator over the dictionary's keys. See the note for
|
||||
:meth:`dict.items`.
|
||||
.. method:: iterkeys()
|
||||
|
||||
.. versionadded:: 2.2
|
||||
Return an iterator over the dictionary's keys. See the note for
|
||||
:meth:`dict.items`.
|
||||
|
||||
.. method:: dict.itervalues()
|
||||
.. versionadded:: 2.2
|
||||
|
||||
Return an iterator over the dictionary's values. See the note for
|
||||
:meth:`dict.items`.
|
||||
.. method:: itervalues()
|
||||
|
||||
.. versionadded:: 2.2
|
||||
Return an iterator over the dictionary's values. See the note for
|
||||
:meth:`dict.items`.
|
||||
|
||||
.. method:: dict.keys()
|
||||
.. versionadded:: 2.2
|
||||
|
||||
Return a copy of the dictionary's list of keys. See the note for
|
||||
:meth:`dict.items`.
|
||||
.. method:: keys()
|
||||
|
||||
.. method:: dict.pop(key[, default])
|
||||
Return a copy of the dictionary's list of keys. See the note for
|
||||
:meth:`dict.items`.
|
||||
|
||||
If *key* is in the dictionary, remove it and return its value, else return
|
||||
*default*. If *default* is not given and *key* is not in the dictionary, a
|
||||
:exc:`KeyError` is raised.
|
||||
.. method:: pop(key[, default])
|
||||
|
||||
.. versionadded:: 2.3
|
||||
If *key* is in the dictionary, remove it and return its value, else return
|
||||
*default*. If *default* is not given and *key* is not in the dictionary,
|
||||
a :exc:`KeyError` is raised.
|
||||
|
||||
.. method:: dict.popitem()
|
||||
.. versionadded:: 2.3
|
||||
|
||||
Remove and return an arbitrary ``(key, value)`` pair from the dictionary.
|
||||
.. method:: popitem()
|
||||
|
||||
:func:`popitem` is useful to destructively iterate over a dictionary, as
|
||||
often used in set algorithms. If the dictionary is empty, calling
|
||||
:func:`popitem` raises a :exc:`KeyError`.
|
||||
Remove and return an arbitrary ``(key, value)`` pair from the dictionary.
|
||||
|
||||
.. method:: dict.setdefault(key[, default])
|
||||
:func:`popitem` is useful to destructively iterate over a dictionary, as
|
||||
often used in set algorithms. If the dictionary is empty, calling
|
||||
:func:`popitem` raises a :exc:`KeyError`.
|
||||
|
||||
If *key* is in the dictionary, return its value. If not, insert *key* with a
|
||||
value of *default* and return *default*. *default* defaults to ``None``.
|
||||
.. method:: setdefault(key[, default])
|
||||
|
||||
.. method:: dict.update([other])
|
||||
If *key* is in the dictionary, return its value. If not, insert *key*
|
||||
with a value of *default* and return *default*. *default* defaults to
|
||||
``None``.
|
||||
|
||||
Update the dictionary with the key/value pairs from *other*, overwriting existing
|
||||
keys. Return ``None``.
|
||||
.. method:: update([other])
|
||||
|
||||
:func:`update` accepts either another dictionary object or an iterable of
|
||||
key/value pairs (as a tuple or other iterable of length two). If keyword
|
||||
arguments are specified, the dictionary is then is updated with those
|
||||
key/value pairs: ``d.update(red=1, blue=2)``.
|
||||
Update the dictionary with the key/value pairs from *other*, overwriting
|
||||
existing keys. Return ``None``.
|
||||
|
||||
.. versionchanged:: 2.4
|
||||
Allowed the argument to be an iterable of key/value pairs and allowed
|
||||
keyword arguments.
|
||||
:func:`update` accepts either another dictionary object or an iterable of
|
||||
key/value pairs (as a tuple or other iterable of length two). If keyword
|
||||
arguments are specified, the dictionary is then is updated with those
|
||||
key/value pairs: ``d.update(red=1, blue=2)``.
|
||||
|
||||
.. method:: dict.values()
|
||||
.. versionchanged:: 2.4
|
||||
Allowed the argument to be an iterable of key/value pairs and allowed
|
||||
keyword arguments.
|
||||
|
||||
Return a copy of the dictionary's list of values. See the note for
|
||||
:meth:`dict.items`.
|
||||
.. method:: values()
|
||||
|
||||
Return a copy of the dictionary's list of values. See the note for
|
||||
:meth:`dict.items`.
|
||||
|
||||
|
||||
.. _bltin-file-objects:
|
||||
|
|
Loading…
Reference in New Issue