bpo-29981: Add examples and update index for set, dict, and generator comprehensions'(GH-20272)


Co-authored-by: Rémi Lapeyre <remi.lapeyre@henki.fr>
(cherry picked from commit 2d55aa9e37c9c84f4f6a8135d0326da0bcd8f38b)

Co-authored-by: Florian Dahlitz <f2dahlitz@freenet.de>
diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index 778fd40..847500e 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -309,6 +309,12 @@
       keys can be any object with :meth:`__hash__` and :meth:`__eq__` methods.
       Called a hash in Perl.
 
+   dictionary comprehension
+      A compact way to process all or part of the elements in an iterable and
+      return a dictionary with the results. ``results = {n: n ** 2 for n in
+      range(10)}`` generates a dictionary containing key ``n`` mapped to
+      value ``n ** 2``. See :ref:`comprehensions`.
+
    dictionary view
       The objects returned from :meth:`dict.keys`, :meth:`dict.values`, and
       :meth:`dict.items` are called dictionary views. They provide a dynamic
@@ -1027,6 +1033,12 @@
       interface can be registered explicitly using
       :func:`~abc.ABCMeta.register`.
 
+   set comprehension
+      A compact way to process all or part of the elements in an iterable and
+      return a set with the results. ``results = {c for c in 'abracadabra' if
+      c not in 'abc'}`` generates the set of strings ``{'r', 'd'}``.  See
+      :ref:`comprehensions`.
+
    single dispatch
       A form of :term:`generic function` dispatch where the implementation is
       chosen based on the type of a single argument.