lists.org
changeset 114 751cb19549c8
child 116 8b650688f4e1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lists.org	Tue Apr 27 16:47:49 2010 +0530
@@ -0,0 +1,117 @@
+* Lists
+*** Outline
+***** Lists
+***** Tuples
+***** Arsenal Required
+*** Script
+	Welcome friends. 
+
+	In this tutorial we shall look at Data structures supported by
+	Python.	We shall look at Lists and Tuples. We have already seen
+	lists in some of previous sessions, here we shall cover more 
+	details about them.
+
+	The list type is a container that holds a number of other 
+	objects, in a given order. The list type implements the sequence
+	protocol, and also allows you to add and remove objects from 
+	the sequence. 
+	
+	First lets start the interpreter by typing ipython in terminal.
+	We create our first list by typing 
+	num = [1, 2, 3, 4]
+	Items enclosed in square brackets separated by comma 
+	constitutes a list.
+	One neat feature of Python list is we can store data belonging
+	to multiple kind of data structures. We can have a list with 
+	something:
+	var = [1, 1.2, 'string']
+	print var
+	and with this list we can perform most of list operations.
+	Python lists are very versatile, that is we can change it as we 
+	wish. It supports features like removal, addition. 
+
+	Similar to strings, we can concatenate two lists using '+' 
+	operator
+	so num + var will return a new list with 'var' added in end of
+	'num'
+	We have already covered append functionality.
+	To add single object at end of list 'append' function is used
+	num
+	num.append(-5)
+	num
+	append takes only one argument. And append behaves different 
+	from + operator. While + will return new list with two lists 
+	added if we try similar with append function like:
+	num.append([9, 10, 11])
+	num
+	It changes original list and add the argument as one element
+	and not separate elements.
+	To extend list with new list elements we use 'extend' function
+	num = [1, 4, -6]
+	num.extend([2, 8, 0])
+	num
+	As we can notice extend and append behaves differently.
+	To reverse a list 'reverse' function is available. 
+	num
+	This is current content of list
+	num.reverse()
+	Now after using reverse function, lets check the value of 'num'
+	num
+	To remove a particular element from list Python provides remove
+	num.reverse(8)
+	if argument is present more than once, then first occurrence is
+	removed from list.
+
+	Slicing and Striding concepts which we covered for Arrays work
+	with lists also. Lets revisit the concept with some examples
+	a = [1, 2, 3, 4, 5]
+	a[1:3] returns a list with second and third element of a
+	One important feature of list indexing is negative values. In
+	Lists -1 indicates last element of a list
+	a[-1]
+	similarly -2 will be second last and so forth. Now these 
+	negative indexes can also be used with slicing. If we try
+	a[1:-1]
+	we get list which excludes first and last element of a.
+	and if we miss start/end index value default are taken
+	a[:3] will return list from start till fourth element of a.
+	If we give step size we can do striding also
+	a[1:-1:2]
+	This gives second, fourth and so on items of a till we reach 
+	last item of list.
+	a[::2] will skip all the even placed elements of a
+	With step sizes, if we give negative values we get some 
+	interesting results. Lets try
+	a[::-1]
+	It returns reversed 'a'
+	We can check for containership also with lists
+	num
+	4 in a
+	True
+	
+	Python provides support to special immutable lists known as
+	'tuple'	To create a tuple instead of square brackets'[' we have
+	to use normal brackets '('
+	t = (1, 2, 3, 4, 5, 6, 7, 8)
+	its elements can also be accessed using indexes
+	t[0] + t[3] + t[-1]
+	but operation like
+	t[4] = 7 are not allowed
+	These features of tuples have their advantages. To see where 
+	are they used we first create two variables
+	a, b = 1, 6
+	print a, b
+	Now lets swap values their values. Normal approach would be 
+	to create a temporary to hold the value but because of tuples
+	we can do something cool like
+	b, a = a, b
+	print a, b
+	and values are swapped. And this swapping works for all types
+	of variables.
+	
+	With this we come to the end of this tutorial on Lists and 
+	tuples. In this tutorial we have learnt some more operations 
+	on lists and tuples. In next session we will cover more on 
+	Python supported data structures. Thank you!
+
+*** Notes