sets.rst
author nishanth
Wed, 15 Sep 2010 22:09:31 +0530
changeset 142 7bc28afff7ab
child 143 e75538bca178
permissions -rw-r--r--
initial commit of sets

Hello friends and welcome to the tutorial on Sets

{{{ Show the slide containing title }}}

{{{ Show the slide containing the outline slide }}}

In this tutorial, we shall learn

 * sets
 * operations on sets

Sets are data structures which contain unique elements. In other words,
duplicates are not allowed in sets.

Lets look at how to input sets.
type
::
 
    a_list = [1, 2, 1, 4, 5, 6, 7]
    a = set(a_list)
    a
     
We can see that duplicates are removed and the set contains only unique
elements. 
::

    f10 = set([1, 2, 3, 5, 8])
    p10 = set([2, 3, 5, 7])

f10 is the set of fibonacci numbers from 1 to 10.
p10 is the set of prime numbers from 1 to 10.

Sets can be iterated upon just like lists and tuples. 
::

    for i in f10:
        print i,

prints the elements of f10.

The length and containership check on sets is similar as in lists and tuples.
::

    len(f10)

shows 5. And
::

    2 in f10

prints False

The order in which elements are organised in a set is not to be relied upon 
since sets do not support indexing. Hence, slicing and striding are not valid
on sets.

Various operations that we do on sets are possible here also.
The | character stands for union
::

    f10 | p10

gives us the union of f10 and p10

The & character stands for intersection.
::

    f10 & p10

gives the intersection

similarly,
::

    f10 - p10

gives all the elements that are in f10 but not in p10

::

    f10 ^ p10

is all the elements in f10 union p10 but not in f10 intersection p10. In
mathematical terms, it gives the symmectric difference.

{{{ Pause here and try out the following exercises }}}

%% 1 %% Given a list of marks, marks = [20, 23, 22, 23, 20, 21, 23] 
        list all the duplicates

{{{ continue from paused state }}}

Duplicates marks are the marks left out when we remove each element of the 
list exactly one time.

::

    marks = [20, 23, 22, 23, 20, 21, 23] 
    marks_set = set(marks)
    for mark in marks_set:
        marks.remove(mark)

    # we are now left with only duplicates in the list marks
    duplicates = set(marks)

{{{ Show summary slide }}}

This brings us to the end of the tutorial.
we have learnt

 * How to make sets from lists
 * How to input sets
 * The various similarities with lists like length and containership
 * How to perform union, intersection and symmectric difference operations

{{{ Show the "sponsored by FOSSEE" slide }}}

#[Nishanth]: Will add this line after all of us fix on one.
This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India

Hope you have enjoyed and found it useful.
Thankyou
 
.. Author              : Nishanth
   Internal Reviewer 1 : 
   Internal Reviewer 2 : 
   External Reviewer   :