6.2.9 Dictionary Comprehensions

  • Convenient notation for quickly generating dictionaries, often by mapping one dictionary to another.
  • The expression to the left of the for clause specifies a key–value pair of the form key: value.
  • In a dictionary with unique values, you can reverse the key–value pair mappings.
In [1]:
months = {'January': 1, 'February': 2, 'March': 3}
In [2]:
months2 = {number: name for name, number in months.items()}
In [3]:
months2
Out[3]:
{1: 'January', 2: 'February', 3: 'March'}
  • A dictionary comprehension also can map a dictionary’s values to new values.
In [4]:
grades = {'Sue': [98, 87, 94], 'Bob': [84, 95, 91]}
In [5]:
grades2 = {k: sum(v) / len(v) for k, v in grades.items()}
In [6]:
grades2
Out[6]:
{'Sue': 93.0, 'Bob': 90.0}
In [7]:
##########################################################################
# (C) Copyright 2019 by Deitel & Associates, Inc. and                    #
# Pearson Education, Inc. All Rights Reserved.                           #
#                                                                        #
# DISCLAIMER: The authors and publisher of this book have used their     #
# best efforts in preparing the book. These efforts include the          #
# development, research, and testing of the theories and programs        #
# to determine their effectiveness. The authors and publisher make       #
# no warranty of any kind, expressed or implied, with regard to these    #
# programs or to the documentation contained in these books. The authors #
# and publisher shall not be liable in any event for incidental or       #
# consequential damages in connection with, or arising out of, the       #
# furnishing, performance, or use of these programs.                     #
##########################################################################