:meth:`update` accepts either another object with a ``keys()`` method (in
which case :meth:`~object.__getitem__` is called with every key returned from
- the method). or an iterable of key/value pairs (as tuples or other iterables
+ the method) or an iterable of key/value pairs (as tuples or other iterables
of length two). If keyword arguments are specified, the dictionary is then
updated with those key/value pairs: ``d.update(red=1, blue=2)``.
"D.__sizeof__() -> size of D in memory, in bytes");
PyDoc_STRVAR(update__doc__,
-"D.update([E, ]**F) -> None. Update D from dict/iterable E and F.\n\
-If E is present and has a .keys() method, then does: for k in E: D[k] = E[k]\n\
+"D.update([E, ]**F) -> None. Update D from mapping/iterable E and F.\n\
+If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k]\n\
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v\n\
In either case, this is followed by: for k in F: D[k] = F[k]");