getting_started_with_lists/script.rst.orig
author Puneeth Chaganti <punchagan@fossee.in>
Wed, 01 Dec 2010 16:51:35 +0530
changeset 522 d33698326409
permissions -rw-r--r--
Renamed all LOs to match with their names in progress.org.

.. Objectives
.. ----------

.. By the end of this tutorial, you will be able to

.. Create Lists.
.. Access List elements.
.. Append elemets to list
.. Delete list elemets

.. 1. getting started with ipython 



.. Prerequisites
.. -------------

..   1. getting started with strings
..   #. getting started with lists
..   #. basic datatypes
     
.. Author              : Amit 
   Internal Reviewer   : Anoop Jacob Thomas <anoop@fossee.in>
   External Reviewer   :
   Checklist OK?       : <put date stamp here, if OK> [2010-10-05]

.. #[[Anoop: Slides contain only outline and summary

Script
------
 {{{ Show the slide containing title }}}

Hello friends and welcome to the tutorial on getting started with
lists.

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

In this tutorial we will be getting acquainted with a python data
structure called lists.  We will learn ::
 
 * How to create lists
 * Structure of lists
 * Access list elements
 * Append elements to lists
 * Delete elements from lists

List is a compound data type, it can contain data of other data
types. List is also a sequence data type, all the elements are in
order and the order has a meaning.

.. #[[Anoop: "all the elements are in order and **there** order has a
   meaning." - I guess something is wrong here, I am not able to
   follow this.]]

We will first create an empty list with no elements. On your IPython
shell type ::

   empty = [] 
   type(empty)
   

This is an empty list without any elements.

.. #[[Anoop: the document has to be continous, without any
   subheadings, removing * Filled lists]]

Lets now see how to define a non-empty list. We do it as,::

     nonempty = ['spam', 'eggs', 100, 1.234]

Thus the simplest way of creating a list is typing out a sequence 
of comma-separated values (items) between square brackets. 
All the list items need not be of the same data type.

As we can see lists can contain different kinds of data. In the
previous example 'spam' and 'eggs' are strings and 100 and 1.234 are
integer and float. Thus we can put elements of heterogenous types in
lists including list itself.

.. #[[Anoop: the sentence "Thus list themselves can be one of the
   element types possible in lists" is not clear, rephrase it.]]

Example ::

      listinlist=[[4,2,3,4],'and', 1, 2, 3, 4]

We access list elements using the index. The index begins from 0. So
for list nonempty, nonempty[0] gives the first element, nonempty[1]
the second element and so on and nonempty[3] the last element. ::

	    nonempty[0] 
	    nonempty[1] 
	    nonempty[3]

Following is an exercise that you must do. 

%% %% What happens when you do nonempty[-1]. 

Please, pause the video here. Do the exercise and then continue.  

.. #[[Anoop: was negative indices introduced earlier, if not may be we
   can ask them to try out nonempty[-1] and see what happens and then
   tell that it gives the last element in the list.]]

As you can see you get the last element which is 1.234.


In python negative indices are used to access elements from the end::
   
   nonempty[-1] 
   nonempty[-2] 
   nonempty[-4]

-1 gives the last element which is the 4th element , -2 second to last
and -4 gives the fourth from last element which is first element.

We can append elements to the end of a list using append command. ::

   nonempty.append('onemore') 
   nonempty
   nonempty.append(6) 
   nonempty
   
Following are  exercises that you must do. 

%% %% What is the syntax to get the element 'and' 
in the list,listinlist ?


%% %% How would you get 'and' using negative indices?

Please, pause the video here. Do the exercise and then continue.  

The solution is on your screen


As we can see non empty appends 'onemore' and 6 at the end.

Using len function we can check the number of elements in the list
nonempty. In this case it 6 ::
	 
	 len(nonempty)



Just like we can append elements to a list we can also remove them.
There are two ways of doing it. One is by using index. ::

      del(nonempty[1])



deletes the element at index 1, 'eggs' which is the second element of
the list. The other way is removing element by content. Lets say one
wishes to delete 100 from nonempty list the syntax of the command
should be

.. #[[Anoop: let x = [1,2,1,3]
   	     now x.remove(x[2])
	     still x is [2,1,3] so that is not the way to remove
	     element by index, it removed first occurrence of 1(by
	     content) and not based on index, so make necessary
	     changes]]

::

    nonempty.remove(100)

but what if there were two 100's. To check that lets do a small
experiment. ::

	   nonempty.append('spam') 
	   nonempty
	   nonempty.remove('spam') 
	   nonempty

If we check now we will see that the first occurence 'spam' is removed
thus remove removes the first occurence of the element in the sequence
and leaves others untouched.





.. #[[Anoop: does it have two spams or two pythons?]]

.. #[[Anoop: there are no exercises/solved problems in this script,
   add them]]

Following are  exercises that you must do. 

%% %% Remove the third element from the list, listinlist.   

%% %% Remove 'and' from the list, listinlist.

Please, pause the video here. Do the exercise and then continue.  



{{{Slide for Summary }}}


In this tutorial we came across a sequence data type called lists. ::

 * We learned how to create lists.  
 * How to access lists.
 * Append elements to list.
 * Delete Element from list.  
 * And Checking list length.
 


{{{ show Sponsored by Fossee Slide }}}

This tutorial was created as a part of FOSSEE project.

I hope you found this tutorial useful.

Thank You

..
 * Author : Amit Sethi 
 * First Reviewer : 
 * Second Reviewer : Nishanth