Assignment3 submission

The [docs for `dict.update()`](https://docs.python.org/2/library/stdtypes.html#dict.update) state:

> update() accepts either another dictionary object or an iterable of key/value pairs (as tuples or other iterables of length two).

We can use this knowledge to create the translation table in one line. We can create a sequence of tuples containing key/value pairs using `zip()` and a generator comprehension (similar to a list comprehension, but it uses less memory because it provides each item one at a time rather than producing the entire set all at once):

    q.update(zip((ord(letter) for letter in alphabet), key13))

This isn't something you were expected to know how to do. I wanted to point it out since you were initially using `dict.update()`. There's likely an even cleaner way to do it with a dictionary comprehension.