Introduction
Hey guys today I am writing a tutorial on Lists and tuples in Python....
So lets get started...
Layout:-
1.What are data sturctures?
2.What are tuples?
3.What are lists?
4.inbuilt functions on lists and tupples
What are Data structure?
Anybody familiar with programming or Actually Computers. Should be knowing what are data structures. Data structures are simply a collection of data (eg:- numbers , characters etc etc.) Each element in a data structure is assigned to a unique index …In python the first element of a sequence in assigned to 0 then 1,2,3,4,5,and so on.. I'll make that easy in the next topic.
NOTE: A data structure can also contain a collection of other data structures
eg:-
Aneesh = ("Aneesh Dogra" , 15)
Sachin = ("Sachin Sharma", 36)
data = (Sachin , Aneesh)
print data
output:-
(('Sachin Sharma', 36), ('Aneesh Dogra', 15))
You'll have a better understanding of the above program when I'll clear lists and tuples
Python has 6 built-in types of sequences... But in this tutorial we'll be only dealing with Two of them that is LISTS AND TUPPLES.
What are tuples?What are lists?
In Python they both are just types of sequences...
The main difference in between tuples and lists are that you can change a list or add some elements to a list but you cannot change Tuples.
Tupples:-
To declare a tuple in python we simply put no brackets or we can put '(' Tuple ')' Both works and we seperate elements in a tuple by a comma..
Eg:-
Aneesh = ('H','e','y',' ','t','h','i','s',' ','i','s',' ','A','n','e','e','s','h')
print Aneesh
output:-
('H', 'e', 'y', ' ', 't', 'h', 'i', 's', ' ', 'i', 's', ' ', 'A', 'n', 'e', 'e', 's', 'h')
Indexing:-
In the beginning of chapter I told you that Each element in a data structure is assigned to a unique index …In python the first element of a sequence in assigned to 0 then 1,2,3,4,5,and so on..
lets try that:-
Aneesh = "Hey this is Aneesh"
print Aneesh[0]
print Aneesh[1]
print Aneesh[2]
print Aneesh[3]
print Aneesh[4]
print Aneesh[5]
print Aneesh[6]
print Aneesh[7]
print Aneesh[8]
print Aneesh[9]
print Aneesh[10]
print Aneesh[11]
output:-
H
e
y
t
h
i
s
i
s
Note to Experienced Programmers: I know by writing these large pieces of code I made my program so unreadable . I could have used some loops . But as this is a tutorial for absolute beginners so I avoided to use them ..
Python also supports indexing from the last element … I'll show you how...
Aneesh = "Hey this is Aneesh"
print Aneesh[-1]
print Aneesh[-2]
print Aneesh[-3]
print Aneesh[-4]
print Aneesh[-5]
print Aneesh[-6]
print Aneesh[-7]
print Aneesh[-8]
print Aneesh[-9]
print Aneesh[-10]
print Aneesh[-11]
output:-
h
s
e
e
n
A
s
i
s
When you use a negative index python starts counting from the right side..so..
The last element in a sequence is referred by a [-1] not a [-0] as that would be same as the first element . The second last element is referred by a -2 and so on...
The method of referring to elements in a sequence by this method is called Indexing..
Sequences like strings can be indexed directly... eg:-
print 'hey'[0]
output = h
I think that all about indexing now lets get to:-
Slicing
Have a slice of bread and learn about slicing... “LOL”
Slicing is somewhat related to indexing …
As you used indexes to access different individual elements in a sequence .. you can use slicing to access ranges of elements. “looks interesting” let's get to it..
Aneesh = "Hey this is Aneesh"
print Aneesh[0:10]
output:-
Hey this i
Pretty Simple...
lets try it with some other code:-
Aneesh = "1234567"
print Aneesh[3:6]
output : 4,5,6
Remember:- The index of 1st element in the sequence is 0.
lets try something else:-
Shortcuts:-
Aneesh = "1234567"
print Aneesh[0:6:2]
Output:-
135
This type of slicing means … Print 0-6th elements but not everyone..
Only every second element including the first...
I'll make that easy
try with this:-
Aneesh = "1234567"
print Aneesh[0:6:1]
Now the program says to python that print every 1st element... that actually means each one of them …
Now does that make sense?
All other shortcuts in one ..:-
no = "1234567"
print no[:3] # it actually means [0:3] yes you guessed it right the zeroes can be omitted
print no[:] # if you want to print the entire sequence then you could use a single colon
print no[-1:1] # Not exactly the desired result. In fact, any time the leftmost index in a slice comes later in the sequence than the second one the result is always an empty sequence.
print no[-1:4] # empty
print no[-5:4] # it will print 3,4 as the left element comes before the right one... so no empty case
# Actually guyz thers tons of other things you can do with slicing and I think you all should mess around with them research about it on google etc etc...
I commented the source above … to make it easy to understand....
Lists:-
To declare a list in python we simple put '' at the start and end of the list respectively.
And we separate different elements in a list by a comma ','..
Eg:-
no = ['1','2','3','4','5','6','7']
print no[0]
output:-
1
words = ['Aneesh','You','tutorial']
print words[0]
output:-
Aneesh
Same slicing and indexing can go in lists also....
List Methods:-
There are some functions made for lists... like append ete etc....
The basic format of these methods are :-
object.method(arguments)
pretty simple...
Append:-
The append method is used to add an element/object at the end of the list:-
eg:-
Aneesh = ['Hello' , 'World' ]
Aneesh.append('Welcome')
print Aneesh
output:-
As expected....
Note : The method append only takes one argument...for appending more than 1 value we use method extend()....explained below...
Extend:-
We use this Method when we want to add more than one values/elements at the end of a list...
eg:-
Aneesh = ['Hello' , 'World' ]
you = ['This','is','a','simple','tutorial']
Aneesh.extend(you)
print Aneesh
This can seem ...Same as adding sequences [explained in the next topic] but it is not.. here the “Aneesh” list is updated....
Count:-
list1 = [1,3,4,9,0,0,8,8,7,7,7,7]
print list1.count(7)
output:-
4
no need to explain that...
Insert :-
Insert method is used to insert an element in a list at a certain index...
eg:-
list1 = [1,3,4,9,0,0,8,8,7,7,7,7]
list1.insert(5,"Hey hooooooooo!!!!!!")
print list1
output:-
[1, 3, 4, 9, 0, 'Hey hooooooooo!!!!!!', 0, 8, 8, 7, 7, 7, 7]
POP :-
If you are familiar with low level programming then you'll be familiar with pop and push with stack...
The pop method removes an element from a list … By deafault the last one..
The pop also return the element it removed...
list1 = [1,3,4,9,0,0,8,8,'last']
print list1.pop()
print list1
output:-
last
[1, 3, 4, 9, 0, 0, 8, 8]
In the above code The pop removed the last element....As explained above...and returned the value of the element it removed...In this case last
And if you'll give it a index it will remove that element eg:-
list1 = [1,3,4,9,0,0,8,8,'last']
print list1.pop(2)
print list1
Output:-
4
[1, 3, 9, 0, 0, 8, 8, 'last']
Remove:-
Remove is somewhat similar to pop.. it takes the value of any element in the list and removes that from the list....
list1 = [1,3,4,9,0,'middle',8,8,'last']
list1.remove('middle')
print list1
Output:-
[1, 3, 4, 9, 0, 8, 8, 'last']
This method doesn't remove anything...
Reverse:-
It simply reverses the list....
list1 = [1,3,4,9,0,'middle',8,8,'last']
list1.reverse()
print list1
Output:-
Sort:-
This method simply sorts the list....
list1 = [1,3,4,9,0,8,8]
list1.sort()
print list1
Output:-
[0, 1, 3, 4, 8, 8, 9]
NOTE: Guys There's still some more functions...Dealing with lists but these are basic and the most used ones...
Some more stuff you can do with sequences:-
Adding sequences:-
string = "Hello" + "Aneesh"
print string
output:-
HelloAneesh
Note : Adding strings do not automatically add a space between them you have to add it manually.
This method is also called concanteration
Multiplying:-
string = "Hello" * 5
print string
output:-
HelloHelloHelloHelloHello
The 'in' operator:-
In python you can check if a word , string , digit is in a sequence or not... by using the 'in' operator
It returns True if he found it , or else False if he dint found it...
Eg:-
print 'l' in "Hello"
output :-
True
as expected
Some more examples:-
nos = [10,9,8,7,6,5,4,3,2,1]
print 1 in nos
Output:-
True
As expected...
Length , Minimum , Maximimum:-
There are 3 very useful functions in python:-
1.len
2.min
3.max
I think no need to explain them you'll be able to pick them .. only by seeing the source and the output:-
list1 = '1','3','4'
print list1
print "length = ",len(list1)
print "Minimum value = ",min(list1)
print "Maximum Value = ",max(list1)
Output:-
('1', '3', '4')
length = 3
Minimum value = 1
Maximum Value = 4
cmp [compare] :-
This method simply compare 2 values,lists,tuples and returns a 0 if the two inputs are equal, -1 if leftmost input is smaller or 1 if rightmost input is smaller...
cmp(x,y)
1 if x>y
0 if x==y
-1 if x<y
x=1
y=2
print cmp(x,y)
output:-
-1
At last I'd like you all to know about what is “None” and how do we initialize an empty list in python ..
As we know an empty list is initialized by “a = []” simply putting two brackets with nothing on it... But what if you want to make a list with room for 10 elements with nothing useful in it..
We use None...
a = [None] * 10
print a
Output:-
[None, None, None, None, None, None, None, None, None, None]
Its not so useful …. You could've used zeros instead of “None” ...But you may find it in some other source codes..So... That's why I explained it...
Thanks guyz for reading this....
Feel free to add comments...