The most basic data structure in Python is the sequence. Each element of a sequence is assigned a number - its position or index. The first index is zero, the second index is one, and so forth.
Python has six built-in types of sequences, but the most common ones are lists and tuples, which we would see in this tutorial.
There are certain things you can do with all sequence types. These operations include indexing, slicing, adding, multiplying, and checking for membership. In addition, Python has built-in functions for finding the length of a sequence and for finding its largest and smallest elements.
Python Lists
The list is a most versatile datatype available in Python which can be written as a list of comma-separated values (items) between square brackets. Important thing about a list is that items in a list need not be of the same type.
Creating a list is as simple as putting different comma-separated values between square brackets. For example:
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];
Similar to string indices, list indices start at 0, and lists can be sliced, concatenated and so on.
Accessing Values in Lists
To access values in lists, use the square brackets for slicing along with the index or indices to obtain value available at that index. For example:
#!/usr/bin/python
list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ];
print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]
When the above code is executed, it produces the following result:
list1[0]:Â Â Â Â physics
list2[1:5]:Â Â Â Â [2, 3, 4, 5]
Updating Lists
You can update single or multiple elements of lists by giving the slice on the left-hand side of the assignment operator, and you can add to elements in a list with the append() method. For example:
#!/usr/bin/python
list = ['physics', 'chemistry', 1997, 2000];
print "Value available at index 2 : " print list[2];
list[2] = 2001;
print "New value available at index 2 : " print list[2];
Note: append() method is discussed in subsequent section.
When the above code is executed, it produces the following result:
Value available at index 2 :
New value available at index 2 :
2001
Deleting List Elements
To remove a list element, you can use either the del statement if you know exactly which element(s) you are deleting or the remove() method if you do not know. For example:
#!/usr/bin/python
list1 = ['physics', 'chemistry', 1997, 2000];
print list1; del list1[2];
print "After deleting value at index 2 : " print list1;
When the above code is executed, it produces following result:
['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]
Note: remove() method is discussed in subsequent section.
Basic List Operations
Lists respond to the + and * operators much like strings; they mean concatenation and repetition here too, except that the result is a new list, not a string.
In fact, lists respond to all of the general sequence operations we used on strings in the prior chapter.
Python Expression | Results | Description |
len([1, 2, 3]) | 3 | Length |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | Concatenation |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | Repetition |
3 in [1, 2, 3] | True | Membership |
for x in [1, 2, 3]: print x, | 1 2 3 | Iteration |
Indexing, Slicing, and Matrixes
Because lists are sequences, indexing and slicing work the same way for lists as they do for strings.
Assume the following input:
L = ['spam', 'Spam', 'SPAM!']
Python Expression | Results | Description |
L[2] | 'SPAM!' | Offsets start at zero |
L[-2] | 'Spam' | Negative: count from the right |
L[1:] | ['Spam', 'SPAM!'] | Slicing fetches sections |
Built-in List Functions and Methods
Python includes the following list functions:
Sr. No.    Function with Description
Compares elements of both lists.
Gives the total length of the list.
Returns item from the list with max value.
Returns item from the list with min value.
Converts a tuple into list.
Let us go through the functions in detail:
Cmp(list1, list2)
Description
The method cmp() compares elements of two lists.
Syntax
Following is the syntax for cmp() method:
cmp(list1, list2)
Parameters
- list1 -- This is the first list to be compared.
- list2 -- This is the second list to be compared.
Return Value
If elements are of the same type, perform the compare and return the result. If elements are different types, check to see if they are numbers.
- If numbers, perform numeric coercion if necessary and compare.
- If either element is a number, then the other element is "larger" (numbers are "smallest").
- Otherwise, types are sorted alphabetically by name.
If we reached the end of one of the lists, the longer list is "larger." If we exhaust both lists and share the same data, the result is a tie, meaning that 0 is returned.
Example
The following example shows the usage of cmp() method.
#!/usr/bin/python
list1, list2 = [123, 'xyz'], [456, 'abc']
print cmp(list1, list2); print cmp(list2, list1); list3 = list2 + [786]; print cmp(list2, list3)
When we run above program, it produces following result:
-1
1
-1
- len(List)
Description
The method len() returns the number of elements in the list.
Syntax
Following is the syntax for len() method:
len(list)
Parameters
- list -- This is a list for which number of elements to be counted.
Return Value
This method returns the number of elements in the list.
Example
The following example shows the usage of len() method.
#!/usr/bin/python
list1, list2 = [123, 'xyz', 'zara'], [456, 'abc']
print "First list length : ", len(list1);
print "Second list length : ", len(list2);
When we run above program, it produces following result:
First list length :Â Â Â Â 3
Second lsit length :Â Â Â Â 2
- max(list)
Description
The method max returns the elements from the list with maximum value.
Syntax
Following is the syntax for max() method:
max(list)
Parameters
- list -- This is a list from which max valued element to be returned.
Return Value
This method returns the elements from the list with maximum value.
Example
The following example shows the usage of max() method.
#!/usr/bin/python
list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]
print "Max value element : ", max(list1); print "Max value element : ", max(list2);
When we run above program, it produces following result:
Max value element :Â Â Â Â zara
Max value element :Â Â Â Â 700
- min(list)
Description
The method min() returns the elements from the list with minimum value.
Syntax
Following is the syntax for min() method:
min(list)
Parameters
- list -- This is a list from which min valued element to be returned.
Return Value
This method returns the elements from the list with minimum value.
Example
The following example shows the usage of min() method.
#!/usr/bin/python
list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]
print "min value element : ", min(list1); print "min value element : ", min(list2);
When we run above program, it produces following result:
min value element :Â Â Â Â 123
min value element :Â Â Â Â 200
Python includes following list methods:
Sr. No. | Methods with Description |
1 | list.append(obj) |
Appends object obj to list | |
2 | list.count(obj) |
Returns count of how many times obj occurs in list | |
3 | list.extend(seq) |
Appends the contents of seq to list | |
4 | list.index(obj) |
Returns the lowest index in list that obj appears | |
5 | list.insert(index, obj) |
Inserts object obj into list at offset index | |
6 | list.pop(obj=list[-1]) |
Removes and returns last object or obj from list | |
7 | list.remove(obj) |
Removes object obj from list | |
8 | list.reverse() |
Reverses objects of list in place | |
9 | list.sort([func]) |
Sorts objects of list, use compare func if given |
Let us go through the methods in detail:
List.append(obj)
Description
The method append() appends a passed obj into the existing list.
Syntax
Following is the syntax for append() method:
list.append(obj)
Parameters
- obj -- This is the object to be appended in the list.
Return Value
This method does not return any value but updates existing list.
Example
The following example shows the usage of append() method.
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc']; aList.append( 2009 );
print "Updated List : ", aList;
When we run above program, it produces following result:
Updated List :Â Â Â Â [123, 'xyz', 'zara', 'abc', 2009]
- list.count(obj)
Description
The method count() returns count of how many times obj occurs in list.
Syntax
Following is the syntax for count() method:
list.count(obj)
Parameters
- obj -- This is the object to be counted in the list.
Return Value
This method returns count of how many times obj occurs in list.
Example
The following example shows the usage of count() method.
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc', 123];
print "Count for 123 : ", aList.count(123); print "Count for zara : ", aList.count('zara');
When we run above program, it produces following result:
Count for 123 :Â Â Â Â 2
Count for zara :Â Â Â Â 1
- list.extend(seq)
Description
The method extend() appends the contents of seq to list.
Syntax
Following is the syntax for extend() method:
list.extend(seq)
Parameters
- seq -- This is the list of elements
Return Value
This method does not return any value but add the content to existing list.
Example
The following example shows the usage of extend() method.
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc', 123];
bList = [2009, 'manni'];
aList.extend(bList)
print "Extended List : ", aList ;
When we run above program, it produces following result:
Extended List :Â Â Â Â [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
- list.index(obj)
Description
The method index() returns the lowest index in list that obj appears.
Syntax
Following is the syntax for index() method:
list.index(obj)
Parameters
- obj -- This is the object to be find out.
Return Value
This method returns index of the found object otherwise raise an exception indicating that value does not find.
Example
The following example shows the usage of index() method.
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc'];
print "Index for xyz : ", aList.index( 'xyz' ) ; print "Index for zara : ", aList.index( 'zara' ) ;
When we run above program, it produces following result:
Index for xyz :Â Â Â Â 1
Index for zara :Â Â Â Â 2
- list.insert(index,obj)
Description
The method insert() inserts object obj into list at offset index.
Syntax
Following is the syntax for insert() method:
list.insert(index, obj)
Parameters
- index -- This is the Index where the object obj need to be inserted.
- obj -- This is the Object to be inserted into the given list.
Return Value
This method does not return any value but it inserts the given element at the given index.
Example
The following example shows the usage of insert() method.
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc']
aList.insert( 3, 2009)
print "Final List : ", aList
When we run above program, it produces following result:
Final List : [123, 'xyz', 'zara', 2009, 'abc']
Description
The method pop() removes and returns last object or obj from the list.
Syntax
Following is the syntax for pop() method:
list.pop(obj=list[-1])
Parameters
- obj -- This is an optional parameter, index of the object to be removed from the list.
Return Value
This method returns the removed object from the list.
Example
The following example shows the usage of pop() method.
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc'];
print "A List : ", aList.pop(); print "B List : ", aList.pop(2);
When we run above program, it produces following result:
A List :Â Â Â Â abc
B List :Â Â Â Â zara
- List.remove(obj)
Parameters
- obj -- This is the object to be removed from the list.
Return Value
This method does not return any value but removes the given object from the list.
Example
The following example shows the usage of remove() method.
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
aList.remove('xyz'); print "List : ", aList; aList.remove('abc'); print "List : ", aList;
When we run above program, it produces following result:
List :Â Â Â Â [123, 'zara', 'abc', 'xyz']
List :Â Â Â Â [123, 'zara', 'xyz']
- List.reverse()
Description
The method reverse() reverses objects of list in place.
Syntax
Following is the syntax for reverse() method:
list.reverse()
Parameters
NA
Return Value
This method does not return any value but reverse the given object from the list.
Example
The following example shows the usage of reverse() method.
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
aList.reverse();
print "List : ", aList;
When we run above program, it produces following result:
List :Â Â Â Â ['xyz', 'abc', 'zara', 'xyz', 123]
Description
The method reverse() reverses objects of list in place.
Syntax
Following is the syntax for reverse() method:
list.reverse()
Parameters
NA
Return Value
This method does not return any value but reverse the given object from the list.
Example
The following example shows the usage of reverse() method.
#!/usr/bin/python
aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
aList.reverse();
print "List : ", aList;
When we run above program, it produces following result:
List :Â Â Â Â ['xyz', 'abc', 'zara', 'xyz', 123]
#####################################
List
A list is a collection which is ordered and changeable. In Python lists are written with square brackets.
Example
Create a List:
thislist = ["apple", "banana", "cherry"]
print(thislist)
Access Items
You access the list items by referring to the index number:
Example
Print the second item of the list:
thislist = ["apple", "banana", "cherry"]
print(thislist[1])
Change Item Value
To change the value of a specific item, refer to the index number:
Example
Change the second item:
thislist = ["apple", "banana", "cherry"]
thislist[1] =Â "blackcurrant"
print(thislist)
Loop Through a List
You can loop through the list items by using a for
 loop:
Example
Print all items in the list, one by one:
thislist = ["apple", "banana", "cherry"]
for x in thislist:
print(x)
Check if Item Exists
To determine if a specified item is present in a list use the in
 keyword:
Example
Check if "apple" is present in the list:
thislist = ["apple", "banana", "cherry"]
if "apple" in thislist:
print("Yes, 'apple' is in the fruits list")
List Length
To determine how many items a list has, use the len()
 method:
Example
Print the number of items in the list:
thislist = ["apple", "banana", "cherry"]
print(len(thislist))
Add Items
To add an item to the end of the list, use the append() method:
Example
Using the append() method to append an item:
thislist = ["apple", "banana", "cherry"]
thislist.append("orange")
print(thislist)
To add an item at the specified index, use the insert() method:
Example
Insert an item as the second position:
thislist = ["apple", "banana", "cherry"]
thislist.insert(1, "orange")
print(thislist)
Remove Item
There are several methods to remove items from a list:
Example
The remove()
 method removes the specified item:
thislist = ["apple", "banana", "cherry"]
thislist.remove("banana")
print(thislist)
Example
The pop()
 method removes the specified index, (or the last item if index is not specified):
thislist = ["apple", "banana", "cherry"]
thislist.pop()
print(thislist)
Example
The del
 keyword removes the specified index:
thislist = ["apple", "banana", "cherry"]
del thislist[0]
print(thislist)
Example
The del
 keyword can also delete the list completely:
thislist = ["apple", "banana", "cherry"]
del thislist
Example
The clear()
 method empties the list:
thislist = ["apple", "banana", "cherry"]
thislist.clear()
print(thislist)
Copy a List
You cannot copy a list simply by typing list2 = list1
, because:Â list2
 will only be a reference to list1
, and changes made in list1
 will automatically also be made in list2
.
There are ways to make a copy, one way is to use the built-in List method copy()
.
Example
Make a copy of a list with the copy()
 method:
thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)
Another way to make a copy is to use the built-in method list()
.
Example
Make a copy of a list with the list()
 method:
thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist)
The list() Constructor
It is also possible to use the list() constructor to make a new list.
Example
Using the list() constructor to make a List:
thislist = list(("apple", "banana", "cherry")) # note the double round-brackets
print(thislist)
List Methods
Python has a set of built-in methods that you can use on lists.
Method | Description |
---|---|
append() | Adds an element at the end of the list |
clear() | Removes all the elements from the list |
copy() | Returns a copy of the list |
count() | Returns the number of elements with the specified value |
extend() | Add the elements of a list (or any iterable), to the end of the current list |
index() | Returns the index of the first element with the specified value |
insert() | Adds an element at the specified position |
pop() | Removes the element at the specified position |
remove() | Removes the item with the specified value |
reverse() | Reverses the order of the list |
sort() | Sorts the list |
#######################################
##############################
t1=(1,2,3,4)
t2=(3,1,4,2)
n1=len(t1)
n2=len(t2)
i=0
j=0
count=0
while(i<n1):
j=0
while(j<n2):
if(t1[i]==t2[j]):
count=count+1
break
j=j+1
i=i+1
if(count==n1):
print("both are equal")
else:
print("both are not equal")
t1=(1,2,3,4)
t2=(3,1,4,2)
n1=len(t1)
n2=len(t2)
i=0
j=0
count=0
while(i<n1):
j=0
while(j<n2):
if(t1[i]==t2[j]):
count=count+1
break
j=j+1
i=i+1
if(count==n1):
print("both are equal")
else:
print("both are not equal")
###################################
t1=(1,2,3,4)
t2=(3,1,4,2)
count=0
n1=len(t1)
for ele1 in t1:
for ele2 in t2:
if(ele1==ele2):
count=count+1
break
if(count==n1):
print("both are equal")
else:
print("both are not equal")
#####################
K shift list
def rot_n(l,d):
t=l[0:d]
print("eles to be shifted to back",t)
i=0
n=len(l)
while(i<n-d):
l[i]=l[i+d]
print("Copying %d into %d"%(i+d,i))
print("Updated list:",l)
i=i+1
print("i at end of loop",i)
l[i:i+d]=t
return l
#############
Count SubString
def count_substring(string, sub_string):
n2=len(sub_string)
count=0
n1=len(string)
for i in range(n1):
print(i+n2-1," <", n1,string[i:i+n2],sub_string)
if(i+n2-1 < n1 and string[i:i+n2]==sub_string ):
print(string[i:i+n2])
count=count+1
print(count)
return
count_substring("ABCDCDC","CDC")
################
>> l=[1,2,34,5]
>>> l.append(6)
>>> print(l)
[1, 2, 34, 5, 6]
>>> l.pop()
6
>>> l.remove(34)
>>> print(l)
[1, 2, 5]
>>> del l[1]
>>> print(l)
[1, 5]
>>> l2=l.copy()
>>> print(l2)
[1, 5]
>>> l2.clear()
>>> print(l2)
[]
>>> l=[1,2,3,1,1,1]
>> l.count(1)
4>> l.extend([7,8,9,10])
>>> print(l)
[1, 2, 3, 1, 1, 1, 7, 8, 9, 10]
>>> l.insert(2,15)
>>> print(l)
[1, 2, 15, 3, 1, 1, 1, 7, 8, 9, 10]>> l.reverse()
>>> print(l)
[10, 9, 8, 7, 1, 1, 1, 3, 15, 2, 1]
>>> l.sort()
>>> print(l)
[1, 1, 1, 1, 2, 3, 7, 8, 9, 10, 15]
>>> x=enumerate(l)
>>> print(x)
<enumerate object at 0x00CDCB48>
>>> list(enumerate(l))
[(0, 1), (1, 1), (2, 1), (3, 1), (4, 2), (5, 3), (6, 7), (7, 8), (8, 9), (9, 10), (10, 15)]
>>>