Hello welcome to the tutorial on statistics and dictionaries in Python.

In the previous tutorial we saw the `for' loop and lists. Here we shall look into
calculating mean for the same pendulum experiment and then move on to calculate
the mean, median and standard deviation for a very large data set.

Let's start with calculating the mean acceleration due to gravity based on the data from pendulum.txt.

We first create an empty list `g_list' to which we shall append the values of `g'.
In []: g_list = []

For each pair of `L' and `t' values in the file `pendulum.txt' we calculate the 
value of `g' and append it to the list `g_list'
In []: for line in open('pendulum.txt'):
  ....     point = line.split()
  ....     L = float(point[0])
  ....     t = float(point[1])
  ....     g = 4 * pi * pi * L / (t * t)
  ....     g_list.append(g)

We proceed to calculate the mean of the value of `g' from the list `g_list'. 
Here we shall show three ways of calculating the mean. 
Firstly, we calculate the sum `total' of the values in `g_list'.
In []: total = 0
In []: for g in g_list:
 ....:     total += g
 ....:

Once we have the total we calculate by dividing the `total' by the length of `g_list'

In []: g_mean = total / len(g_list)
In []: print 'Mean: ', g_mean

The second method is slightly simpler. Python provides a built-in function called "sum()" that computes the sum of all the elements in a list. 
In []: g_mean = sum(g_list) / len(g_list)
In []: print 'Mean: ', g_mean

The third method is the simplest. Python provides a built-in function `mean' that
calculates the mean of all the elements in a list.
In []: g_mean = mean(g_list)
In []: print 'Mean: ', g_mean

Python provides support for dictionaries. Dictionaries are key value pairs. Lists are indexed by integers while dictionaries are indexed by strings. For example:
In []: d = {'png' : 'image',
      'txt' : 'text', 
      'py' : 'python'} 
is a dictionary. The first element in the pair is called the `key' and the second 
is called the `value'. The key always has to be a string while the value can be 
of any type.

Dictionaries are indexed using their keys as shown
In []: d['txt']
Out[]: 'text'

In []: d['png']
Out[]: 'image'

The dictionaries can be searched for the presence of a certain key by typing
In []: 'py' in d
Out[]: True

In []: 'jpg' in d
Out[]: False
Please note the values cannot be searched in a dictionaries.

In []: d.keys()
Out[]: ['py', 'txt', 'png']
is used to obtain the list of all keys in a dictionary

In []: d.values()
Out[]: ['python', 'text', 'image']
is used to obtain the list of all values in a dictionary

In []: d
Out[]: {'png': 'image', 'py': 'python', 'txt': 'text'}
Please observe that dictionaries do not preserve the order in which the items
were entered. The order of the elements in a dictionary should not be relied upon.
