getting_started_with_lists.rst
author amit
Thu, 23 Sep 2010 12:29:30 +0530
changeset 201 6b1efb74d914
parent 200 db9617c1d01f
child 204 65e5e2362bc9
permissions -rw-r--r--
Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
     1
Hello friends and welcome to the tutorial on getting started with
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
     2
lists.
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
     3
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
     4
 {{{ Show the slide containing title }}}
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
     5
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
     6
 {{{ Show the slide containing the outline slide }}}
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
     7
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
     8
In this tutorial we will be getting acquainted with a python data
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
     9
structure called lists.  We will learn :
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    10
 * How to create lists
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    11
 * Structure of lists
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    12
 * Access list elements
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    13
 * Append elements to lists
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    14
 * Deleting elements from lists
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    15
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    16
List is a compound data type, it can contain data of other data
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    17
types. List is also a sequence data type, all the elements are in
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    18
order and there order has a meaning.
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    19
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    20
We will first create an empty list with no elements. On your IPython
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    21
shell type ::
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    22
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    23
   empty = [] 
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    24
   type(empty)
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    25
   
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    26
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    27
This is an empty list without any elements.
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    28
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    29
* Filled lists
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    30
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    31
Lets now define a list, nonempty and fill it with some random elements.
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    32
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    33
nonempty = ['spam', 'eggs', 100, 1.234]
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    34
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    35
Thus the simplest way of creating a list is typing out a sequence 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    36
of comma-separated values (items) between square brackets. 
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    37
All the list items need not have the same data type.
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    38
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    39
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    40
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    41
As we can see lists can contain different kinds of data. In the
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    42
previous example 'spam' and 'eggs' are strings and 100 and 1.234
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    43
integer and float. Thus we can put elements of heterogenous types in
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    44
lists. Thus list themselves can be one of the element types possible
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    45
in lists. Thus lists can also contain other lists.  Example ::
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    46
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    47
      list_in_list=[[4,2,3,4],'and', 1, 2, 3, 4]
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    48
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    49
We access list elements using the number of index. The
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    50
index begins from 0. So for list nonempty, nonempty[0] gives the
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    51
first element, nonempty[1] the second element and so on and
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    52
nonempty[3] the last element.::
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    53
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    54
	    nonempty[0] 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    55
	    nonempty[1] 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    56
	    nonempty[3]
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    57
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    58
We can also access the elememts from the end using negative indices ::
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    59
   
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    60
   nonempty[-1] 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    61
   nonempty[-2] 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    62
   nonempty[-4]
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    63
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    64
-1 gives the last element which is the 4th element , -2 second to last and -4 gives the fourth
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    65
from last element which is first element.
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    66
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    67
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    68
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    69
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    70
We can append elements to the end of a list using append command. ::
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    71
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    72
   nonempty.append('onemore') 
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    73
   nonempty
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    74
   nonempty.append(6) 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    75
   nonempty
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    76
   
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    77
As we can see non empty appends 'onemore' and 6 at the end.
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    78
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    79
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    80
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    81
Using len function we can check the number of elements in the list
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    82
nonempty. In this case it being 6:
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    83
	 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    84
	 len(nonempty)
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    85
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    86
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    87
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    88
Just like we can append elements to a list we can also remove them.
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    89
There are two ways of doing it. One is by using index. ::
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    90
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    91
      del(nonempty[1])
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    92
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
    93
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    94
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
    95
deletes the element at index 1, i.e the second element of the
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    96
list, 'eggs'. The other way is removing element by content. Lets say
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
    97
one wishes to delete 100 from nonempty list the syntax of the command
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    98
should be :: 
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
    99
      
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
   100
      a.remove(100)
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   101
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
   102
but what if their were two 100's. To check that lets do a small
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
   103
experiment. ::
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   104
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   105
	   a.append('spam') 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   106
	   a 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   107
	   a.remove('spam') 
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   108
	   a
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   109
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
   110
If we check a now we will see that the first occurence 'spam' is removed
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
   111
thus remove removes the first occurence of the element in the sequence
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
   112
and leaves others untouched.
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   113
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   114
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   115
{{{Slide for Summary }}}
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   116
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   117
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
   118
In this tutorial we came across a sequence data type called lists. ::
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
   119
182
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
   120
 * We learned how to create lists.  
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
   121
 * Append elements to list.
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
   122
 * Delete Element from list.  
ddfb8b89f5bc some small changes , especially punctuation
amit
parents: 178
diff changeset
   123
 * And Checking list length.
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   124
201
6b1efb74d914 Applied the suggestion of Nishanth on getting started with lists and basicdatatypes(Partially)
amit
parents: 200
diff changeset
   125
178
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   126
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   127
{{{ Sponsored by Fossee Slide }}}
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   128
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   129
This tutorial was created as a part of FOSSEE project.
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   130
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   131
I hope you found this tutorial useful.
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   132
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   133
Thank You
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   134
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   135
4c7b906e0d21 Initial commit getting started with lists.
amit
parents:
diff changeset
   136
Author : Amit Sethi 
185
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
   137
First Reviewer : 
35a3811ca91e reviewed getting_started_with_lists a.k.a liststart
Nishanth <nishanth@fossee.in>
parents: 182
diff changeset
   138
Second Reviewer : Nishanth