8.2 How do I find an Emacs Lisp package that does XXX?

The command C-h p (finder-by-keyword) allows you to browse the packages that come with Emacs.

For advice on how to find extra packages that are not part of Emacs, see Where can I get Emacs Lisp packages that don’t come with Emacs?.

Other techniques that might be useful:

Typing M-x apropos RET python RET lists all functions and variables containing the string ‘python’.

You can look through your computer’s lisp directory (see What are src/config.h, site-lisp/default.el, etc.?). The Lisp source to most packages contains a short description of what they do and how they should be used.