Lecture 22 — Dictionaries, Part 1

Overview

  • Dictionaries and dictionary operations

  • Solutions to the problem of counting how many items are associated with each category in Customers.txt files

  • Other applications

Introduction to Dictionaries

  • Association between “keys” (like words in an English dictionary) and “values” (like definitions in an English dictionary). The values can be anything.

  • Examples:

    >>> children = dict()
    >>> children = {}    # either of these works
    >>> children['Sam'] = 11
    >>> children['Peter'] = 12
    >>> children['Alice'] = 10
    >>> children['Jon'] = 13
    >>> children
    {'Sam': 11, 'Peter': 12, 'Alice': 10, 'Jon': 13}
    >>> 'Sam' in children
    True
    >>> 'Luke' in children
    False
    >>> 13 in children
    False
    >>> list(children.keys())
    ['Sam', 'Peter', 'Alice', 'Jon']
    >>> sorted(children.keys())
    ['Alice', 'Jon', 'Peter', 'Sam']
    >>> children.values()
    dict_values([11, 12, 10, 13])
    >>> list(children.values())
    [11, 12, 10, 13]
    
  • Details:

    • Two initializations; either would work.

    • Syntax is very much like the subscripting syntax for lists, except dictionary subscripting/indexing uses keys instead of integers!

    • The keys, in this example, are children names and the values are their age (integers).

    • The in method tests only for the presence of the key, like looking up a word in the dictionary without checking its definition.

    • The keys are NOT ordered.

  • Just as in sets, the implementation uses hashing of keys.

    • Conceptually, sets are dictionaries without values.