Skip to content

Instantly share code, notes, and snippets.

@stefanv
Created November 15, 2012 18:45
Show Gist options
  • Select an option

  • Save stefanv/4080392 to your computer and use it in GitHub Desktop.

Select an option

Save stefanv/4080392 to your computer and use it in GitHub Desktop.
Dictionary exercise
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "dictionaries"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Dictionaries"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Constructing a dictionary"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"d = {'hello': 'A greeting'}"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"d['hello']"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 2,
"text": [
"'A greeting'"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here 'hello' is called the **key** and 'A greeting' is the **value**."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### A more general dictionary"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"k = {'hello': 'A greeting', 1: 'One'}\n",
"k[1]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 4,
"text": [
"'One'"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that now the **key** is a number and the **value** is a string."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Modifying a dictionary"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"y = {1: 2, 3: 4}\n",
"y[1] = y[1] + 1\n",
"\n",
"y[1]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 6,
"text": [
"3"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Worked examples"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## Construct a dictionary that maps three words to three sentences\n",
"oxford = {...}"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"my_dict = {'hello': 'world'}\n",
"... ## look up 'hello', should return 'world'"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## Construct a dictionary that maps three numbers to three words\n",
"number_map = {...}"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"concept_map = {...}\n",
"concept_map['donkey'] ## should return \"is an animal\""
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"histogram = {'a': 5, 'b': 7, 'd': 9}\n",
"... # increase the count of 'b' by 2\n",
"histogram['b'] # should yield 9 "
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Advanced challenge: use the histogram above, and generate a list\n",
"# containing the corresponding items.\n",
"#\n",
"# E.g., histogram = {'a': 3, 'b': 2} => ['a', 'a', 'a', 'b', 'b']\n",
"# histogram = {'a': 1, 'd': 4} => ['a', 'd', 'd', 'd', 'd']\n",
"\n",
"output = []\n",
"for key in histogram:\n",
" ..."
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Real-world example\n",
"\n",
"When trying to break simple ciphers (e.g., <http://en.wikipedia.org/wiki/Substitution_cipher>) it is\n",
"often useful to count the number of times each letter occurs in a piece of text. In the following example,\n",
"we count such occurrences and plot them."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"text = \"\"\"\n",
"Hereupon Legrand arose, with a grave and stately air, and brought me the beetle\n",
"from a glass case in which it was enclosed. It was a beautiful scarabaeus, and, at\n",
"that time, unknown to naturalists\u2014of course a great prize in a scientific point\n",
"of view. There were two round black spots near one extremity of the back, and a\n",
"long one near the other. The scales were exceedingly hard and glossy, with all the\n",
"appearance of burnished gold. The weight of the insect was very remarkable, and,\n",
"taking all things into consideration, I could hardly blame Jupiter for his opinion\n",
"respecting it.\"\"\""
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 18
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"frequency = {}\n",
"alphabet = 'abcdefghijklmnopqrstuvwxyz'\n",
"for l in alphabet:\n",
" frequency[l] = 0\n",
"\n",
"for l in text.lower():\n",
" if l and l in alphabet:\n",
" frequency[l] += 1\n",
"\n",
"print frequency"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"{'a': 48, 'c': 16, 'b': 9, 'e': 58, 'd': 16, 'g': 13, 'f': 9, 'i': 34, 'h': 22, 'k': 5, 'j': 1, 'm': 6, 'l': 21, 'o': 30, 'n': 35, 'q': 0, 'p': 9, 's': 27, 'r': 31, 'u': 12, 't': 41, 'w': 12, 'v': 3, 'y': 6, 'x': 2, 'z': 1}\n"
]
}
],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"x = np.arange(26)\n",
"f = [frequency[alphabet[l]] for l in x]\n",
"\n",
"plt.stem(x, f)\n",
"plt.xticks(x, alphabet);"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x3ce7810>"
]
}
],
"prompt_number": 20
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, have a look at this Morse code table. Is there any correlation between the *length* of each\n",
"code and the table above?\n",
"<p/>\n",
"<img src=\"http://upload.wikimedia.org/wikipedia/commons/b/b5/International_Morse_Code.svg\" width=\"300px\"/>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment