One of the standard Perl tricks is making a hash of arrays (pun intended!).

In Python this is a little trickier.

For example, you read in a file of the form: device location -- you will often need to to something like get all of the devices in New York, so you want to be able to do something like:

ny_devices = device_list["ny"]

The first thing you try is:

(device, location) = line.split(" ")

This dies with: KeyError: 'ny' -- this is because the key "ny" doesn't exist yet.

One way to deal with this is:

(device, location) = line.split(" ")
if location not in device_list:
# Add empty list for location
device_list[location] = []

A much cleaner way to do this is: