# Learn List in Python

## List Data Type

It behaves like a container in which we can store both types of heterogeneous and homogeneous data in a huge amount. It is a mutable data type and stored in a squared bracket []. For manipulation, it has so many methods. Now we will discuss some of the methods one by one.

let's create a list by using an inbuilt function i.e list

Input

``````# list is in-built function  and iterate the string one by one
l = list('python')
print(l,'\n')

print(list(range(10)))
``````

Output

``````['p', 'y', 't', 'h', 'o', 'n']

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
``````

let's see how to access the elements from the list

Input

``````# first way by using print()

lst=[[1,2,5,6,'hffhf'],True,4+2j,'sdkkj',56.4]
print(lst,'\n')

# second way by using for loop
for i in lst:
print(i)
``````

Output

``````[[1, 2, 5, 6, 'hffhf'], True, (4+2j), 'sdkkj', 56.4]

[1, 2, 5, 6, 'hffhf']
True
(4+2j)
sdkkj
56.4
``````

let's see slicing and manipulation in the list by using index number

Input

``````# slicing the list
l = [1,2,3,['a','b','c'],True,False,4+5j]
print(l)
print(l)

# manipulate the list

l = 15
print(l)
``````

Output

``````1
c
[1, 2, 3, ['a', 'b', 15], True, False, (4+5j)]
``````

Suppose we have a list into a list and we want the sum of all the integers into a nested list so how we can find out. let's see

Input

``````# task -  find the sum of all integers in a nested list

lst = [[1, 2, 5, 10, 'hffhf'], True, (4+2j), 'sdkkj', 56.4]
for i in lst:
if type(i)==list:
print('nested list = ',i)
n=0
for j in i:
if type(j)==int:
n= n+j
print('sum of nested list =',n)
``````

Output

``````nested list =  [1, 2, 5, 10, 'hffhf']
sum of the integers in the nested list = 18
``````

## Now we'll see the inbuilt methods and functions

### 1. Max & Min

Input

``````# max and min can find only in same data type list either string or numeric
print('Max = ' , max([1,5,6,10]))

print('Min = ' , min(['d','z','a','r']))

print(min([1,5,6,10,'jhsgf']))
``````

Output

``````Max =  10
Min =  a
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-24-9f67570e76be> in <module>
4 print('Min = ' , min(['d','z','a','r']))
5
----> 6 print(min([1,5,6,10,'jhsgf']))

TypeError: '<' not supported between instances of 'str' and 'int'
``````

### 2.Append

It means we can add more elements or lists into the existing list to the end of the list.

Input

``````#  Append does add an object or nested list to the end of the list.

lst=[45,65,4.5,154,9547]
print('original list = ',lst)
lst.append(56)
print('After append an object =' ,lst)

# append the list
lst.append(['a','b','c','d'])
print('append list into list = ',lst)
``````

Output

``````original list =  [45, 65, 4.5, 154, 9547]
After append an object = [45, 65, 4.5, 154, 9547, 56]
append list into list =  [45, 65, 4.5, 154, 9547, 56, ['a', 'b', 'c', 'd']]
``````

### 3. Extend

It works the same as append function but the difference is in spite of extending a list into the existing list, we have only one list.

Input

``````# Extend list by appending elements from the iterable.
lst1=[65,45,65.4,True,'jhds']
print('original list = ' , lst1)

# string is iterable.
lst1.extend('gh')
print('extended list = ', lst1)

lst1.extend([4,6,7,3])
print('extended list = ', lst1)
``````

Output

``````original list =  [65, 45, 65.4, True, 'jhds']
extended list =  [65, 45, 65.4, True, 'jhds', 'g', 'h']
extended list =  [65, 45, 65.4, True, 'jhds', 'g', 'h', 4, 6, 7, 3]
``````

### 4. Insert

We can insert only one element at a time at any index.

Input

``````#Insert object before index, insert only one element at a time.
lst2 = [12,15,84,6,1,0,45.1]
print('original list = ', lst2)

# insert element between 15 and 84
lst2.insert(2,95)
print('After insert the element = ', lst2)

# insert element from backward direction
lst2.insert(-2,100)
print('after insert element from back = ', lst2)
``````

Output

``````original list =  [12, 15, 84, 6, 1, 0, 45.1]
After insert the element =  [12, 15, 95, 84, 6, 1, 0, 45.1]
after insert element from back =  [12, 15, 95, 84, 6, 1, 100, 0, 45.1]
``````

### 5. Sort

It means to arrange the elements either in ascending or descending order. It can be applied only to the same data type(strings or numerical).

Input

``````#for sorting, the list must have either string or numerical data type.

lst3 = [12,1,45,94,0.4,65.7]
print('original list = ', lst3)

# by default sort in ascending order
lst3.sort()
print('sorted list(ascending) = ', lst3)

lst3.sort(reverse = True)
print('sorted list(descending) = ', lst3)

lst4 = ['d','a','c','k']
print('list = ', lst4)
lst4.sort(reverse=True)
print('sorted list = ', lst4)
``````

Output

``````original list =  [12, 1, 45, 94, 0.4, 65.7]
sorted list(ascending) =  [0.4, 1, 12, 45, 65.7, 94]
sorted list(descending) =  [94, 65.7, 45, 12, 1, 0.4]
list =  ['d', 'a', 'c', 'k']
sorted list =  ['k', 'd', 'c', 'a']
``````

### 6. Reverse

It just reverses the elements into the list.

Input

``````# reverse list
lst5 = ['rev',154,65.4,True,4+2j]
print('list = ', lst5)

lst5.reverse()
print('reversed list = ', lst5)
``````

Output

``````list =  ['rev', 154, 65.4, True, (4+2j)]
reversed list =  [(4+2j), True, 65.4, 154, 'rev']
``````

### 7. Count

It gives how many times particular data comes.

Input

``````# count function returns a number of occurrences of value.

lst6 = [4,4,5,6,7,8,10,4,5,6.5]
print('list =',lst6)

# count 4 occurrences into list
lst6.count(4)
``````

Output

``````list = [4, 4, 5, 6, 7, 8, 10, 4, 5, 6.5]
3
``````

### 8. Index

It gives the index number of particular data but in case of duplicate values, it returns the first index of value.

Input

``````
lst6 = [4,4,5,6,7,8,10,4,5,6.5]
lst6.index(4)
``````

Output

``````0
``````

### Remove , Pop , Clear & Copy

From the names, we can get an idea of how they work. Let's try to understand by making the programs.

Input

``````#Remove first occurrence of value.
lst7=[5, 6, 7, 8, 10, 5, 6.5]
lst7.remove(5)
print(lst7)
``````

Output

``````[6, 7, 8, 10, 5, 6.5]
``````

Input

``````#pop remove and return item at index (default last).
lst8 = [45.6,True,4+5j,'aaabb',45,65,8]
print('list = ', lst8)
lst8.pop()
#also we can remove any element using index number.
lst8.pop(5)
print('after pop list =' ,lst8)

#copy return a shallow copy of the list.
a= [45.6, True, (4+5j), 'aaabb', 45, 65, 8,'sdjfb']
b=a.copy()
print('Shallow copy = ', b)
print('a = ', a.clear())
print('still we have shallow copy of a = ' , b)

#clear remove all items from list.
lst8.clear()
print('list after clear = ', lst8)
``````

Output

``````list =  [45.6, True, (4+5j), 'aaabb', 45, 65, 8]
after pop list = [45.6, True, (4+5j), 'aaabb', 45]
Shallow copy =  [45.6, True, (4+5j), 'aaabb', 45, 65, 8, 'sdjfb']
a =  None
still we have shallow copy of a =  [45.6, True, (4+5j), 'aaabb', 45, 65, 8, 'sdjfb']
list after clear =  []
``````

For privacy purpose lists are not much safe than tuples, In the next blog, we'll learn tuples. Happy learning !!