diff -r 7ce22d0899e4 Doc/library/stdtypes.rst --- a/Doc/library/stdtypes.rst Fri Mar 14 21:54:41 2014 -0500 +++ b/Doc/library/stdtypes.rst Thu Dec 18 04:11:09 2014 +0000 @@ -1907,22 +1907,24 @@ "They're Bill's Friends." -.. method:: str.translate(map) - - Return a copy of the *s* where all characters have been mapped through the - *map* which must be a dictionary of Unicode ordinals (integers) to Unicode - ordinals, strings or ``None``. Unmapped characters are left untouched. - Characters mapped to ``None`` are deleted. - - You can use :meth:`str.maketrans` to create a translation map from +.. method:: str.translate(table) + + Return a copy of the string in which each character has been + mapped through the given translation table. The table must be + a subscriptable object, for instance a dictionary or list. When + subscripted (indexed) by a Unicode ordinal (an integer), + the table object can: + + * return a Unicode ordinal or a string, to + map the character to one or more other characters + * return ``None``, to delete the character from the return string + * raise a :exc:`LookupError` (possibly an instance of + subclass :exc:`KeyError` or :exc:`IndexError`), to + map the character to itself + + You can use :meth:`str.maketrans` to create a translation table from character-to-character mappings in different formats. - .. note:: - - An even more flexible approach is to create a custom character mapping - codec using the :mod:`codecs` module (see :mod:`encodings.cp1251` for an - example). - .. method:: str.upper() diff -r 7ce22d0899e4 Objects/unicodeobject.c --- a/Objects/unicodeobject.c Fri Mar 14 21:54:41 2014 -0500 +++ b/Objects/unicodeobject.c Thu Dec 18 04:11:09 2014 +0000 @@ -13035,11 +13035,12 @@ PyDoc_STRVAR(translate__doc__, "S.translate(table) -> str\n\ \n\ -Return a copy of the string S, where all characters have been mapped\n\ -through the given translation table, which must be a mapping of\n\ -Unicode ordinals to Unicode ordinals, strings, or None.\n\ -Unmapped characters are left untouched. Characters mapped to None\n\ -are deleted."); +Return a copy of the string S in which each character has been mapped\n\ +through the given translation table. The table must be a subscriptable\n\ +object, for instance a dictionary or list, mapping Unicode ordinals to\n\ +Unicode ordinals, strings, or None. If a character is not in the table,\n\ +the subscript operation should raise LookupError, and the character is\n\ +left untouched. Characters mapped to None are deleted."); static PyObject* unicode_translate(PyObject *self, PyObject *table)