Core Python
Core Python
Core Python
Python is a simple, general purpose, high level, and object-oriented programming language.
Python is an interpreted scripting language also. Guido Van Rossum is known as the founder of
Python programming.
7.6M
184
Features of Java -
What is Python
Python is easy to learn yet powerful and versatile scripting language, which makes it attractive for
Application Development.
Python's syntax and dynamic typing with its interpreted nature make it an ideal language for
scripting and rapid application development.
Python is not intended to work in a particular area, such as web programming. That is why it is
known as multipurpose programming language because it can be used with web, enterprise, 3D
CAD, etc.
We don't need to use data types to declare variable because it is dynamically typed so we can write
a=10 to assign an integer value in an integer variable.
Python makes the development and debugging fast because there is no compilation step included
in Python development, and edit-test-debug cycle is very fast.
1. Python 2 uses print as a statement and used as print "something" to print some string on the
console. On the other hand, Python 3 uses print as a function and used as print("something")
to print something on the console.
2. Python 2 uses the function raw_input() to accept the user's input. It returns the string
representing the value, which is typed by the user. To convert it into the integer, we need to
use the int() function in Python. On the other hand, Python 3 uses input() function which
1
automatically interpreted the type of input entered by the user. However, we can cast this
value to any type by using primitive functions (int(), str(), etc.).
3. In Python 2, the implicit string type is ASCII, whereas, in Python 3, the implicit string type is
Unicode.
4. Python 3 doesn't contain the xrange() function of Python 2. The xrange() is the variant of
range() function which returns a xrange object that works similar to Java iterator. The range()
returns a list for example the function range(0,3) contains 0, 1, 2.
5. There is also a small change made in Exception handling in Python 3. It defines a
keyword as which is necessary to be used. We will discuss it in Exception handling section of
Python programming tutorial.
Python History
Python was invented by Guido van Rossum in 1991 at CWI in Netherland. The idea of Python
programming language has taken from the ABC programming language or we can say that ABC is
a predecessor of Python language.
There is also a fact behind the choosing name Python. Guido van Rossum was a fan of the popular
BBC comedy show of that time, "Monty Python's Flying Circus". So he decided to pick the
name Python for his newly created programming language.
Features of python:
o Data Science
o Date Mining
o Desktop Applications
2
o Console-based Applications
o Software Development
o Artificial Intelligence
o Web Applications
o Enterprise Applications
o 3D CAD Applications
o Machine Learning
o Computer Vision or Image Processing Applications.
o Speech Recognitions
def func():
statement 1
statement 2
…………………
…………………
statement N
In the above example, the statements that are same level to right belong to the function. Generally,
we can use four whitespaces to define indentation.
print("Hello World")
Both programs will print the same result, but it takes only one statement without using a
semicolon or curly braces in Python.
3
Python Popular Frameworks and Libraries
Python has wide range of libraries and frameworks widely used in various fields such as machine
learning, artificial intelligence, web applications, etc. We define some popular frameworks and
libraries of Python as follows.
Unlike the other programming languages, Python print() function is most unique and versatile
function.
o objects - An object is nothing but a statement that to be printed. The * sign represents that
there can be multiple statements.
o sep - The sep parameter separates the print values. Default values is ' '.
o end - The end is printed at last in the statement.
o file - It must be an object with a write(string) method.
o flush - The stream or file is forcibly flushed if it is true. By default, its value is false.
print("Welcome to python.")
a = 10
# Two objects are passed in print() function
print("a =", a)
b=a
Example -
By default, the input() function takes the string input but what if we want to take other data types
as an input.
If we want to take input as an integer number, we need to typecast the input() function into an
integer.
For example -
Example -
print(a+b)
Python Operators
Operators are the symbols which perform various operations on Python objects. Python operators
are the most essential to work with the Python data types. In addition, Python also provides identify
membership and bitwise operators. We will learn all these operators with the suitable example in
following tutorial.
o Python Operators
Python Loops
5
Sometimes we may need to alter the flow of the program. The execution of a specific code may
need to be repeated several numbers of times. For this purpose, the programming languages
provide various types of loops capable of repeating some specific code several times. Consider the
following tutorial to understand the statements in detail.
o Python Loops
o Python For Loop
o Python While Loop
Python List
Python list holds the ordered collection of items. We can store a sequence of items in a list. Python
list is mutable which means it can be modified after its creation. The items of lists are enclosed
within the square bracket [] and separated by the comma. Let's see the example of list.
If we try to print the type of L1, L2, and L3 using type() function then it will come out to be a list.
1. print(type(L1))
2. print(type(L2))
Python Tuple
Python Tuple is used to store the sequence of immutable Python objects. The tuple is similar to lists
since the value of the items stored in the list can be changed, whereas the tuple is immutable, and
the value of the items stored in the tuple cannot be changed.
Example -
Python String
Python string is a sequence of characters. It is a collection of the characters surrounded by single
quotes, double quotes, or triple quotes. It can also define as collection of the Unicode characters.
We can create a string as follows.
6
Example -
Python doesn't support the character data-type. A single character written as 'p' is treated as a
string of length 1.
Dictionaries
Python Dictionary is a most efficient data structure and used to store the large amount of data. It
stores the data in the key-value pair format. Each value is stored corresponding to its key.
Keys must be a unique and value can be any type such as integer, list, tuple, etc.
It is a mutable type; we can reassign after its creation. Below is the example of creating dictionary
in Python.
Example
Statement Description
If Statement The if statement is used to test a specific condition. If the condition is true, a block of
code (if-block) will be executed.
If - else The if-else statement is similar to if statement except the fact that, it also provides the
Statement block of the code for the false case of the condition to be checked. If the condition
provided in the if statement is false, then the else statement will be executed.
7
Nested if Nested if statements enable us to use if ? else statement inside an outer if statement.
Statement
Indentation in Python
For the ease of programming and to achieve simplicity, python doesn't allow the use of parentheses
for the block level code. In Python, indentation is used to declare a block. If two statements are at
the same indentation level, then they are the part of the same block.
Generally, four spaces are given to indent the statements which are a typical amount of indentation
in python.
How to find Nth Highest Salary in SQL
Indentation is the most used part of the python language since it declares the block of code. All
the statements of one block are intended at the same level indentation. We will see how the actual
indentation takes place in decision making and other stuff in python.
The if statement
The if statement is used to test a particular condition and if the condition is true, it executes a block
of code known as if-block. The condition of if statement can be any valid logical expression which
can be either evaluated to true or false.
if expression:
statement
Example 1
num = int(input("enter the number?"))
if num%2 == 0:
print("Number is even")
8
If the condition is true, then the if-block is executed. Otherwise, the else-block is executed.
if condition:
#block of statements
else:
#another block of statements (else-block)
The elif statement works like an if-else-if ladder statement in C. It must be succeeded by an if
statement.
if expression 1:
# block of statements
elif expression 2:
# block of statements
elif expression 3:
9
# block of statements
else:
# block of statements
Example 1
Example 2
Python Loops
The flow of the programs written in any programming language is sequential by default. Sometimes
we may need to alter the flow of the program. The execution of a specific code may need to be
repeated several numbers of times.
For this purpose, The programming languages provide various types of loops which are capable of
repeating some specific code several numbers of times.
10
code for a finite number of times. For example, if we need to print the first 10 natural numbers then,
instead of using the print statement 10 times, we can print inside a loop which runs up to 10
iterations.
Advantages of loops
There are the following advantages of loops in Python.
Loop Description
Statement
for loop The for loop is used in the case where we need to execute some part of the code until
the given condition is satisfied. The for loop is also called as a per-tested loop. It is
better to use for loop if the number of iteration is known in advance.
while loop The while loop is to be used in the scenario where we don't know the number of
iterations in advance. The block of statements is executed in the while loop until the
condition specified in the while loop is satisfied. It is also called a pre-tested loop.
Example-1:
str = "Python"
for i in str:
print(i)
list = [1,2,3,4,5,6,7,8,9,10]
n=5
11
for i in list:
c = n*i
print(c)
list = [10,30,23,43,65,12]
sum = 0
for i in list:
sum = sum+i
print("The sum is:",sum)
The range() function is used to generate the sequence of the numbers. If we pass the
range(10), it will generate the numbers from 0 to 9. The syntax of the range() function is
given below.
Syntax:
range(start,stop,step size)
o The start represents the beginning of the iteration.
o The stop represents that the loop will iterate till stop-1. The range(1,5) will generate
numbers 1 to 4 iterations. It is optional.
o The step size is used to skip the specific numbers from the iteration. It is optional to use.
By default, the step size is 1. It is optional.
for i in range(10):
print(i,end = ' ')
12
n= int(input("Enter the number "))
for i in range(2,n,2):
print(i)
We can also use the range() function with sequence of numbers. The len() function is combined
with range() function which iterate through a sequence using indexing. Consider the following
example.
list = ['Peter','Joseph','Ricky','Devansh']
for i in range(len(list)):
print("Hello",list[i])
Syntax
The Python while loop allows a part of the code to be executed until the given condition
returns false. It is also known as a pre-tested loop.
13
It can be viewed as a repeating if statement. When we don't know the number of iterations
then the while loop is most effective to use.
while expression:
statements
Here, the statements can be a single statement or a group of statements. The expression
should be any valid Python expression resulting in true or false. The true is any non-zero
value and false is 0.
1. Continue Statement - When the continue statement is encountered, the control transfer to the
beginning of the loop. Let's understand the following example.
Example:
2. Break Statement - When the break statement is encountered, it brings control out of the loop.
Example:
Pass Statement - The pass statement is used to declare the empty loop. It is also used to define
empty class, function, and control statement. Let's understand the following example.
Example -
# An empty loop
str1 = 'welcome'
i=0
The break is commonly used in the cases where we need to break the loop for a given condition.
#loop statements
break;
Example 1
list =[1,2,3,4]
count = 1;
for i in list:
if i == 4:
print("item matched")
count = count + 1;
break
15
print("found at",count,"location");
Example 2
str = "python"
for i in str:
if i == 'o':
break
print(i);
Example 3
n=2
while 1:
i=1;
while i<=10:
print("%d X %d = %d\n"%(n,i,n*i));
i = i+1;
choice = int(input("Do you want to continue printing the table, press 0 for no?"))
if choice == 0:
break;
n=n+1
16
Syntax
#loop statements
continue
#the code to be skipped
Example 1
i=0
while(i < 10):
i = i+1
if(i == 5):
continue
print(i)
Observe the output of above code, the value 5 is skipped because we have provided the if
condition using with continue statement in while loop. When it matched with the given
condition then control transferred to the beginning of the while loop and it skipped the value 5
from the code.
Example 2
str = "welcome"
for i in str:
if(i == 'T'):
continue
print(i)
Pass Statement
The pass statement is a null operation since nothing happens when it is executed. It is used in the
cases where a statement is syntactically needed but we don't want to use any executable statement
at its place.
For example, it can be used while overriding a parent class method in the subclass but don't want
to give its specific implementation in the subclass.
Pass is also used where the code will be written somewhere but not yet written in the program file.
list = [1,2,3,4,5]
flag = 0
for i in list:
print("Current element:",i,end=" ");
if i==3:
17
pass
print("\nWe are inside pass block\n");
flag = 1
if flag==1:
print("\nCame out of pass\n");
flag=0
Python Pass
In Python, the pass keyword is used to execute nothing; it means, when we don't want to execute
code, the pass can be used to execute empty. It is the same as the name refers to. It just makes the
control to pass by without executing any code. If we want to bypass any code pass statement can
be used.
It is beneficial when a statement is required syntactically, but we want we don't want to execute or
execute it later. The difference between the comments and pass is that, comments are entirely
ignored by the Python interpreter, where the pass statement is not ignored.
Suppose we have a loop, and we do not want to execute right this moment, but we will execute in
the future. Here we can use the pass.
Example - 2:
for i in [1,2,3,4,5]:
if(i==4):
pass
print("This is pass block",i)
print(i)
# Empty Function
def function_name(args):
pass
#Empty Class
18
class Python:
pass
Python Function
Functions are the most important aspect of an application. A function can be defined as the
organized block of reusable code, which can be called whenever required.
Python allows us to divide a large program into the basic building blocks known as a function. The
function contains the set of programming statements enclosed by {}. A function can be called
multiple times to provide reusability and modularity to the Python program.
The Function helps to programmer to break the program into the smaller part. It organizes the code
very effectively and avoids the repetition of the code. As the program grows, function makes the
program more organized.
Python provide us various inbuilt functions like range() or print(). Although, the user can create its
functions, which can be called user-defined functions.
o User-define functions - The user-defined functions are those define by the user to perform
the specific task.
o Built-in functions - The built-in functions are those functions that are pre-defined in Python.
o Using functions, we can avoid rewriting the same logic/code again and again in a program.
o We can call Python functions multiple times in a program and anywhere in a program.
o We can track a large Python program easily when it is divided into multiple functions.
o Reusability is the main achievement of Python functions.
o However, Function calling is always overhead in a Python program.
Creating a Function
Python provides the def keyword to define the function. The syntax of the define function is given
below.
Syntax:
def my_function(parameters):
function_block
return expression
o The def keyword, along with the function name is used to define the function.
o The identifier rule must follow the function name.
o A function accepts the parameter (argument), and they can be optional.
19
o The function block is started with the colon (:), and block statements must be at the same
indentation.
o The return statement is used to return the value. A function can have only one return
Function Calling
In Python, after the function is created, we can call it from another function. A function must be
defined before the function call; otherwise, the Python interpreter gives an error. To call the
function, use the function name followed by the parentheses.
Consider the following example of a simple example that prints the message "Hello World".
#function definition
def hello_world():
print("hello world")
# function calling
hello_world()
Syntax
1. return [expression_list]
It can contain the expression which gets evaluated and value is returned to the caller
function. If the return statement has no expression or does not exist itself in the function
then it returns the None object.
Example 1
# Defining function
def sum():
a = 10
b = 20
c = a+b
return c
# calling sum() function in print statement
print("The sum is:",sum())
In the above code, we have defined the function named sum, and it has a statement c = a+b, which
computes the given values, and the result is returned by the return statement to the caller function.
20
def sum():
a = 10
b = 20
c = a+b
# calling sum() function in print statement
print(sum())
Arguments in function
The arguments are types of information which can be passed into the function. The arguments are
specified in the parentheses. We can pass any number of arguments, but they must be separate
them with a comma.
Consider the following example, which contains a function that accepts a string as the argument.
Example 1
#defining the function
def func (name):
print("Hi ",name)
#calling the function
func("Devansh")
Example 2
#Python function to calculate the sum of two variables
#defining the function
def sum (a,b):
return a+b;
22
Python String
Till now, we have discussed numbers as the standard data-types in Python. In this section of the tutorial, we will discuss the most popular data type in Python, i.e.,
string.
Python string is the collection of the characters surrounded by single quotes, double quotes, or triple quotes. The computer does not understand the characters;
internally, it stores manipulated character as the combination of the 0's and 1's.
Each character is encoded in the ASCII or Unicode character. So we can say that Python strings are also called the collection of Unicode characters.
In Python, strings can be created by enclosing the character or the sequence of characters in the quotes. Python allows us to use single quotes, double quotes, or
triple quotes to create the string.
Syntax:
1. str = "Hi Python !"
Here, if we check the type of the variable str using a Python script
In Python, strings are treated as the sequence of characters, which means that Python doesn't support the character data-type; instead, a single character written as
'p' is treated as the string of length 1.
23
str = "HELLO"
print(str[0])
print(str[1])
print(str[2])
print(str[3])
print(str[4])
# It returns the IndexError because 6th index doesn't exist
print(str[6])
As shown in Python, the slice operator [] is used to access the individual characters of the string. However, we can use the : (colon) operator in Python to access the
substring from the given string. Consider the following example.
we must notice that the upper range given in the slice operator is always exclusive i.e., if str = 'HELLO' is given, then str[1:3] will always include str[1] = 'E', str[2] = 'L'
and nothing else.
# Given String
str = "welcome"
# Start Oth index to end
print(str[0:])
# Starts 1th index to 4th index
print(str[1:5])
# Starts 2nd index to 3rd index
print(str[2:4])
# Starts 0th to 2nd index
print(str[:3])
#Starts 4th to 6th index
print(str[4:7])
Reassigning Strings
Updating the content of the strings is as easy as assigning it to a new string. The string object doesn't support item assignment i.e., A string can only be replaced
with new string since its content cannot be partially replaced. Strings are immutable in Python.
Example 1
str = "HELLO"
str[0] = "h"
print(str)
However, in example 1, the string str can be assigned completely to a new content as specified in the following example.
24
Example 2
str = "HELLO"
print(str)
str = "hello"
print(str)
str = "welcome"
del str[1]
str1 = "welcome"
del str1
print(str1)
String Operators
Operator Description
+ It is known as concatenation operator used to join the strings given either side of the
operator.
* It is known as repetition operator. It concatenates the multiple copies of the same string.
[:] It is known as range slice operator. It is used to access the characters from the specified range.
not in It is also a membership operator and does the exact reverse of in. It returns true if a particular
substring is not present in the specified string.
r/R It is used to specify the raw string. Raw strings are used in the cases where we need to print
the actual meaning of escape characters such as "C://python". To define any string as a raw
string, the character r or R is followed by the string.
% It is used to perform string formatting. It makes use of the format specifiers used in C
programming like %d or %f to map their values in python. We will discuss how formatting is
done in python.
Example
str = "Hello"
str1 = " world"
print(str*3) # prints HelloHelloHello
print(str+str1)# prints Hello world
print(str[4]) # prints o
print(str[2:4]); # prints ll
print('w' in str) # prints false as w is not present in str
print('wo' not in str1) # prints false as wo is present in str1.
print(r'C://python37') # prints C://python37 as it is written
print("The string str : %s"%(str)) # prints The string str : Hello
25
Next →← Prev
Python List
A list in Python is used to store the sequence of various types of data. Python lists are mutable type its mean we can modify its element after it created. However,
Python consists of six data-types that are capable to store the sequences, but the most common and reliable type is the list.
A list can be defined as a collection of values or items of different types. The items in the list are separated with the comma (,) and enclosed with the square brackets
[].
IIf we try to print the type of L1, L2, and L3 using type() function then it will come out to be a list.
print(type(L1))
print(type(L2))
Characteristics of Lists
Let's check the first statement that lists are the ordered.
a = [1,2,"Peter",4.50,"Ricky",5,6]
b = [1,2,5,"Peter",4.50,"Ricky",6]
a ==b
Both lists have consisted of the same elements, but the second list changed the index position of the 5th element that violates the order of lists. When compare both
lists it returns the false.
Lists maintain the order of the element for the lifetime. That's why it is the ordered collection of objects.
The index starts from 0 and goes to length - 1. The first element of the list is stored at the 0th index, the second element of the list is stored at the 1st index, and so
on.
26
We can get the sub-list of the list using the following syntax.
1. list_varible(start:stop:step)
list = [1,2,3,4,5,6,7]
print(list[0])
print(list[1])
print(list[2])
print(list[3])
# Slicing the elements
print(list[0:6])
# By default the index value is 0 so its starts from the 0th element and go for index -1.
print(list[:])
print(list[2:5])
print(list[1:6:2])
Unlike other languages, Python provides the flexibility to use the negative indexing also. The negative indices are counted from the right. The last element
(rightmost) of the list has the index -1; its adjacent left element is present at the index -2 and so on until the left-most elements are encountered.
Let's have a look at the following example where we will use negative indexing to access the elements of the list.
list = [1,2,3,4,5]
print(list[-1])
print(list[-3:])
print(list[:-1])
print(list[-3:-1])
As we discussed above, we can get an element by using negative indexing. In the above code, the first print statement returned the rightmost element of the list.
The second print statement returned the sub-list, and so on.
27
Lists are the most versatile data structures in Python since they are mutable, and their values can be updated by using the slice and assignment operator.
Python also provides append() and insert() methods, which can be used to add values to the list.
Consider the following example to update the values inside the list.
list = [1, 2, 3, 4, 5, 6]
print(list)
# It will assign value to the value to the second index
list[2] = 10
print(list)
# Adding multiple-element
list[1:3] = [89, 78]
print(list)
# It will add value at the end of the list
list[-1] = 25
print(list)
The list elements can also be deleted by using the del keyword. Python also provides us the remove() method if we do not know which element is to be deleted
from the list.
ist = [1, 2, 3, 4, 5, 6]
print(list)
# It will assign value to the value to second index
list[2] = 10
print(list)
# Adding multiple element
list[1:3] = [89, 78]
print(list)
# It will add value at the end of the list
list[-1] = 25
print(list)
Repetition The repetition operator enables the list elements to L1*2 = [1, 2, 3, 4, 1,
be repeated multiple times. 2, 3, 4]
Membership It returns true if a particular item exists in a particular print(2 in l1) prints
list otherwise false. True.
Iteration The for loop is used to iterate over the list elements. for i in l1:
print(i)
Output
1
2
3
4
Iterating a List
A list can be iterated by using a for - in loop. A simple list containing four strings, which can be iterated as follows.
28
Adding elements to the list
Python provides append() function which is used to add an element to the list. However, the append() function can only add value to the end of the list.
Consider the following example in which, we are taking the elements of the list from the user and printing the list on the console.
Example -
list = [0,1,2,3,4]
print("printing original list: ");
for i in list:
print(i,end=" ")
list.remove(2)
print("\nprinting the list after the removal of first element...")
for i in list:
print(i,end=" ")
1 cmp(list1, It compares the elements of This method is not used in the Python 3 and the
list2) both the lists. above versions.
list1 = [1,2,2,3,55,98,65,65,13,29]
# Declare an empty list that will store unique values
list2 = []
for i in list1:
if i not in list2:
list2.append(i)
print(list2)
list1 = [3,4,5,9,10,12,24]
sum = 0
for i in list1:
sum = sum+i
29
print("The sum is:",sum)
Write the program to find the lists consist of at least one common element.
list1 = [1,2,3,4,5,6]
list2 = [7,8,9,2,10]
for x in list1:
for y in list2:
if x == y:
print("The common element is:",x)
Python Tuple
Python Tuple is used to store the sequence of immutable Python objects. The tuple is similar to lists since the value of the items stored in the list can be changed,
whereas the tuple is immutable, and the value of the items stored in the tuple cannot be changed.
Creating a tuple
A tuple can be written as the collection of comma-separated (,) values enclosed with the small () brackets. The parentheses are optional but it is good practice to use.
A tuple can be defined as follows.
print(type(T1))
print(type(T2))
print(type(T3))
An empty tuple can be created as follows.
T4 = ()
Creating a tuple with single element is slightly different. We will need to put comma after the element to declare the tuple.
A tuple is indexed in the same way as the lists. The items in the tuple can be accessed by using their specific index value.
Example - 2
tuple1 = tuple(input("Enter the tuple elements ..."))
print(tuple1)
count = 0
for i in tuple1:
print("tuple1[%d] = %s"%(count, i))
count = count+1
\
The items in the tuple can be accessed by using the index [] operator. Python also allows us to use the colon operator to access multiple items in the tuple.
Consider the following image to understand the indexing and slicing in detail.
30
Consider the following example:
1. tup = (1,2,3,4,5,6,7)
2. print(tup[0])
3. print(tup[1])
4. print(tup[2])
5. # It will give the IndexError
6. print(tup[8])
In the above code, the tuple has 7 elements which denote 0 to 6. We tried to access an element outside of tuple that raised an IndexError.
tuple = (1,2,3,4,5,6,7)
#element 1 to end
print(tuple[1:])
#element 0 to 3 element
print(tuple[:4])
#element 1 to 4 element
print(tuple[1:5])
# element 0 to 6 and take step of 2
print(tuple[0:6:2])
Negative Indexing
The tuple element can also access by using negative indexing. The index of -1 denotes the rightmost element and -2 to the second last item and so on.
The elements from left to right are traversed using the negative indexing. Consider the following example:
tuple1 = (1, 2, 3, 4, 5)
print(tuple1[-1])
print(tuple1[-4])
print(tuple1[-3:-1])
print(tuple1[:-1])
print(tuple1[-2:])
Deleting Tuple
Unlike lists, the tuple items cannot be deleted by using the del keyword as tuples are immutable. To delete an entire tuple, we can use the del keyword with the tuple
name.
tuple1 = (1, 2, 3, 4, 5, 6)
print(tuple1)
del tuple1[0]
31
print(tuple1)
del tuple1
print(tuple1)
Repetition The repetition operator enables the tuple elements T1*2 = (1, 2, 3, 4, 5,
to be repeated multiple times. 1, 2, 3, 4, 5)
Membership It returns true if a particular item exists in the tuple print (2 in T1) prints
otherwise false True.
Iteration The for loop is used to iterate over the tuple for i in T1:
elements. print(i)
Output
1
2
3
4
5
SN Function Description
1 cmp(tuple1, It compares two tuples and returns true if tuple1 is greater than tuple2
tuple2) otherwise false.
1. Using tuple instead of list gives us a clear idea that tuple data is constant and must not be changed.
Tuple can simulate a dictionary without keys. Consider the following nested structure, which can be used as a dictionary.
SN List Tuple
1 The literal syntax of list is shown by the []. The literal syntax of the tuple is shown by the ().
32
3 The List has the a variable length. The tuple has the fixed length.
4 The list provides more functionality than a The tuple provides less functionality than the list.
tuple.
5 The list is used in the scenario in which we The tuple is used in the cases where we need to store
need to store the simple collections with no the read-only collections i.e., the value of the items
constraints where the value of the items can cannot be changed. It can be used as the key inside
be changed. the dictionary.
6 The lists are less memory efficient than a The tuples are more memory efficient because of its
tuple. immutability.
Python Set
A Python set is the collection of the unordered items. Each element in the set must be unique, immutable, and the sets remove the duplicate elements. Sets are
mutable which means we can modify it after its creation.
Unlike other collections in Python, there is no index attached to the elements of the set, i.e., we cannot directly access any element of the set by the index. However,
we can print them all together, or we can get the list of elements by looping through the set.
Creating a set
The set can be created by enclosing the comma-separated immutable items with the curly braces {}. Python also provides the set() method, which can be used to
create the set by the passed sequence.
It can contain any type of element such as integer, float, tuple etc. But mutable elements (list, dictionary, set) can't be a member of set. Consider the following
example.
In the above code, we have created two sets, the set set1 have immutable elements and set2 have one mutable element as a list. While checking the type of set2, it
raised an error, which means set can contain only immutable elements.
Creating an empty set is a bit different because empty curly {} braces are also used to create a dictionary as well. So Python provides the set() method used without
an argument to create an empty set.
33
Adding items to the set
Python provides the add() method and update() method which can be used to add some particular item to the set. The add() method is used to add a single element
whereas the update() method is used to add multiple elements to the set. Consider the following example.
To add more than one item in the set, Python provides the update() method. It accepts iterable as an argument.
Python provides also the remove() method to remove the item from the set. Consider the following example to remove the items using remove() method.
34
Set can be performed mathematical operation such as union, intersection, difference, and symmetric difference. Python provides the facility to carry out these
operations with operators or methods. We describe these operations as follows.
The union of two sets is calculated by using the pipe (|) operator. The union of the two sets contains all the items that are present in both the sets.
Python also provides the union() method which can also be used to calculate the union of two sets. Consider the following example.
1. Days1 = {"Monday","Tuesday","Wednesday","Thursday"}
2. Days2 = {"Friday","Saturday","Sunday"}
3. print(Days1.union(Days2)) #printing the union of the sets
The intersection of two sets can be performed by the and & operator or the intersection() function. The intersection of the two sets is given as the set of the
elements that common in both sets
35
set2 = {"Steve", "Milan", "David", "Martin"}
print(set1.intersection(set2)) #prints the intersection of the two sets
The intersection_update() method is different from the intersection() method since it modifies the original set by removing the unwanted items, on the other hand,
the intersection() method returns a new set.
a.intersection_update(b, c)
print(a)
36
Using ^ operator
1. a = {1,2,3,4,5,6}
2. b = {1,2,9,8,10}
3. c = a^b
4. print(c)
1. a = {1,2,3,4,5,6}
2. b = {1,2,9,8,10}
3. c = a.symmetric_difference(b)
4. print(c)
Set comparisons
Python allows us to use the comparison operators i.e., <, >, <=, >= , == with the sets by using which we can check whether a set is a subset, superset, or equivalent
to other set. The boolean true or false is returned depending upon the items present inside the sets.
FrozenSets
The frozen sets are the immutable form of the normal sets, i.e., the items of the frozen set cannot be changed and therefore it can be used as a key in the dictionary.
The elements of the frozen set cannot be changed after the creation. We cannot change or append the content of the frozen sets by using the methods like add() or
remove().
The frozenset() method is used to create the frozenset object. The iterable sequence is passed into this method which is converted into the frozen set as a return
type of the method.
Frozenset = frozenset([1,2,3,4,5])
print(type(Frozenset))
print("\nprinting the content of frozen set...")
for i in Frozenset:
print(i);
Frozenset.add(6) #gives an error since we cannot change the content of Frozenset after creation
Python Dictionary
37
Python Dictionary is used to store the data in a key-value pair format. The dictionary is the data type in Python, which can simulate the real-life data arrangement
where some specific value exists for some particular key. It is the mutable data-structure. The dictionary is defined into element Keys and values.
In other words, we can say that a dictionary is the collection of key-value pairs where the value can be any Python object. In contrast, the keys are the immutable
Python object, i.e., Numbers, string, or tuple.\
Syntax:
In the above dictionary Dict, The keys Name and Age are the string that is an immutable object.
Python provides the built-in function dict() method which is also used to create dictionary. The empty curly braces {} is used to create empty dictionary.
# Creating a Dictionary
# with dict() method
Dict = dict({1: 'Java', 2: 'T', 3:'Point'})
print("\nCreate Dictionary by using dict(): ")
print(Dict)
# Creating a Dictionary
# with each item as a Pair
Dict = dict([(1, 'Devansh'), (2, 'Sharma')])
print("\nDictionary with each item as a pair: ")
print(Dict)
However, the values can be accessed in the dictionary by using the keys as keys are unique in the dictionary.
Python provides us with an alternative to use the get() method to access the dictionary values. It would give the same result as given by the indexing.
Note: If the key-value already present in the dictionary, the value gets updated. Otherwise, the new keys added in the dictionary.
38
# Creating an empty Dictionary
Dict = {}
print("Empty Dictionary: ")
print(Dict)
Example:2
Iterating Dictionary
A dictionary can be iterated using for loop as given below.
Example 1
Example 2
39
Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOGLE"}
for x in Employee:
print(Employee[x])
Example - 3
#for loop to print the values of the dictionary by using values() method.
Example 4
#for loop to print the items of the dictionary by using items() method.
1. In the dictionary, we cannot store multiple values for the same keys. If we pass more than one value for a single key, then the value which is last assigned is
considered as the value of the key.
Employee={"Name":"John","Age":29,"Salary":25000,"Company":"GOOGLE","Name":"John"}
for x,y in Employee.items():
print(x,y)
2. In python, the key cannot be any mutable object. We can use numbers, strings, or tuples as the key, but we cannot use any mutable object like the list as the key
in the dictionary.
SN Function Description
1 cmp(dict1, It compares the items of both the dictionary and returns true if the first dictionary
dict2) values are greater than the second dictionary, otherwise it returns false.
SN Method Description
40
2 dict.copy() It returns a shallow copy of the dictionary.
3 dict.fromkeys(iterable, value = Create a new dictionary from the iterable with the values equal
None, /) to value.
4 dict.get(key, default = "None") It is used to get the value specified for the passed key.
8 dict.setdefault(key,default= It is used to set the key to the default value if the key is not
"None") specified in the dictionary
11 len()
12 popItem()
13 pop()
14 count()
15 index()
41