SlideShare a Scribd company logo
1 of 27
7. Tuples
1ARULKUMAR V AP/CSE SECE
Motivations
The No Fly List is a list, created and maintained by
the United States government's Terrorist Screening
Center, of people who are not permitted to board
a commercial aircraft for travel in or out of the
United States. Suppose we need to write a
program that checks whether a person is in the No
Fly List. You can use a Python list to store the
persons in the No Fly List. However, a more
efficient data structure for this application is a set.
2ARULKUMAR V AP/CSE SECE
Objectives
• To use tuples as immutable lists (§14.2).
• To use sets for storing and fast accessing non-
duplicate elements (§14.3).
• To understand the performance differences
between sets and lists (§14.4).
• To store key/value pairs in a dictionary and
access value using the key (§14.5).
• To use dictionaries to develop applications
(§14.6).
3ARULKUMAR V AP/CSE SECE
Tuples
4
Tuples are like lists except they are immutable.
Once they are created, their contents cannot be
changed.
If the contents of a list in your application do not
change, you should use a tuple to prevent data from
being modified accidentally. Furthermore, tuples are
more efficient than lists.
ARULKUMAR V AP/CSE SECE
Creating Tuples
5
t1 = () # Create an empty tuple
t2 = (1, 3, 5) # Create a set with three elements
# Create a tuple from a list
t3 = tuple([2 * x for x in range(1, 5)])
# Create a tuple from a string
t4 = tuple("abac") # t4 is ['a', 'b', 'a', 'c']
ARULKUMAR V AP/CSE SECE
Tuples
6
Tuples can be used like lists except they are
immutable.
TupleDemo Run
ARULKUMAR V AP/CSE SECE
Sets
7
Sets are like lists to store a collection of items.
Unlike lists, the elements in a set are unique and
are not placed in any particular ordered. If your
application does not care about the order of the
elements, using a set to store elements is more
efficient than using lists. The syntax for sets is
braces {}.
ARULKUMAR V AP/CSE SECE
Creating Sets
8
s1 = set() # Create an empty set
s2 = {1, 3, 5} # Create a set with three elements
s3 = set([1, 3, 5]) # Create a set from a tuple
# Create a set from a list
s4 = set([x * 2 for x in range(1, 10)])
# Create a set from a string
s5 = set("abac") # s5 is {'a', 'b', 'c'}
ARULKUMAR V AP/CSE SECE
Manipulating and Accessing Sets
9
>>> s1 = {1, 2, 4}
>>> s1.add(6)
>>> s1
{1, 2, 4, 6}
>>> len(s1)
4
>>> max(s1)
6
>>> min(s1)
1
>>> sum(s1)
13
>>> 3 in s1
False
>>> s1.remove(4)
>>> s1
{1, 2, 6}
>>>
ARULKUMAR V AP/CSE SECE
Subset and Superset
10
>>> s1 = {1, 2, 4}
>>> s2 = {1, 4, 5, 2, 6}
>>> s1.issubset(s2) # s1 is a subset of s2
True
>>>
>>> s1 = {1, 2, 4}
>>> s2 = {1, 4, 5, 2, 6}
>>> s2.issuperset(s1) # s2 is a superset of
s1
True
>>>
ARULKUMAR V AP/CSE SECE
Equality Test
11
>>> s1 = {1, 2, 4}
>>> s2 = {1, 4, 2}
>>> s1 == s2
True
>>> s1 != s2
False
>>>
ARULKUMAR V AP/CSE SECE
Comparison Operators
12
Note that it makes no sense to compare the sets using the
conventional comparison operators (>, >=, <=, <), because
the elements in a set are not ordered. However, these
operators have special meaning when used for sets.
s1 > s2 returns true is s1 is a proper superset of s2.
s1 >= s2 returns true is s1 is a superset of s2.
s1 < s2 returns true is s1 is a proper subset of s2.
s1 <= s2 returns true is s1 is a subset of s2.
ARULKUMAR V AP/CSE SECE
Set Operations (union, |)
13
>>> s1 = {1, 2, 4}
>>> s2 = {1, 3, 5}
>>> s1.union(s2)
{1, 2, 3, 4, 5}
>>>
>>> s1 | s2
{1, 2, 3, 4, 5}
>>>
ARULKUMAR V AP/CSE SECE
Set Operations (intersection, &)
14
>>> s1 = {1, 2, 4}
>>> s2 = {1, 3, 5}
>>> s1.intersection(s2)
{1}
>>>
>>> s1 & s2
{1}
>>>
ARULKUMAR V AP/CSE SECE
Set Operations (difference, -)
15
>>> s1 = {1, 2, 4}
>>> s2 = {1, 3, 5}
>>> s1.difference(s2)
{2, 4}
>>>
>>> s1 - s2
{2, 4}
>>>
ARULKUMAR V AP/CSE SECE
Set Operations
(symetric_difference, ^)
16
>>> s1 = {1, 2, 4}
>>> s2 = {1, 3, 5}
>>> s1.symmetric_difference(s2)
{2, 3, 4, 5}
>>>
>>> s1 ^ s2
{2, 3, 4, 5}
>>>
ARULKUMAR V AP/CSE SECE
Sets
17
SetDemo Run
ARULKUMAR V AP/CSE SECE
Comparing Performance of Sets and
Lists
18
SetListPerformanceTest Run
ARULKUMAR V AP/CSE SECE
Dictionary
Why dictionary?
Suppose your program stores a million students
and frequently searches for a student using the
social security number. An efficient data
structure for this task is the dictionary. A
dictionary is a collection that stores the
elements along with the keys. The keys are like
an indexer.
19ARULKUMAR V AP/CSE SECE
Key/value pairs
20
Search keys Corresponding element values
…
.
.
Entry
A dictionary
ARULKUMAR V AP/CSE SECE
Creating a Dictionary
dictionary = {} # Create an empty dictionary
dictionary = {"john":40, "peter":45} # Create a dictionary
21ARULKUMAR V AP/CSE SECE
Adding/Modifying Entries
To add an entry to a dictionary, use
dictionary[key] = value
For example,
dictionary["susan"] = 50
22ARULKUMAR V AP/CSE SECE
Deleting Entries
To delete an entry from a dictionary, use
del dictionary[key]
For example,
del dictionary["susan"]
23ARULKUMAR V AP/CSE SECE
Looping Entries
for key in dictionary:
print(key + ":" + str(dictionary[key]))
24ARULKUMAR V AP/CSE SECE
The len and in operators
len(dictionary) returns the number of the
elements in the dictionary.
25
>>> dictionary = {"john":40, "peter":45}
>>> "john" in dictionary
True
>>> "johnson" in dictionary
False
ARULKUMAR V AP/CSE SECE
The Dictionary Methods
26
dict
keys(): tuple
values(): tuple
items(): tuple
clear(): void
get(key): value
pop(key): value
popitem(): tuple
Returns a sequence of keys.
Returns a sequence of values.
Returns a sequence of tuples (key, value).
Deletes all entries.
Returns the value for the key.
Removes the entry for the key and returns its value.
Returns a randomly-selected key/value pair as a tuple and
removes the selected entry.
ARULKUMAR V AP/CSE SECE
Case Studies: Occurrences of Words
27
Run
This case study writes a program that counts the
occurrences of words in a text file and displays the words
and their occurrences in alphabetical order of words. The
program uses a dictionary to store an entry consisting of a
word and its count. For each word, check whether it is
already a key in the dictionary. If not, add to the dictionary
an entry with the word as the key and value 1. Otherwise,
increase the value for the word (key) by 1 in the dictionary.
CountOccurrenceOfWords
ARULKUMAR V AP/CSE SECE

More Related Content

What's hot

Perl names values and variables
Perl names values and variablesPerl names values and variables
Perl names values and variablessana mateen
 
MYSQL
MYSQLMYSQL
MYSQLARJUN
 
Php Using Arrays
Php Using ArraysPhp Using Arrays
Php Using Arraysmussawir20
 
Class 4 - PHP Arrays
Class 4 - PHP ArraysClass 4 - PHP Arrays
Class 4 - PHP ArraysAhmed Swilam
 
My sql Syntax
My sql SyntaxMy sql Syntax
My sql SyntaxReka
 
学生向けScalaハンズオンテキスト
学生向けScalaハンズオンテキスト学生向けScalaハンズオンテキスト
学生向けScalaハンズオンテキストOpt Technologies
 
Prabu's sql quries
Prabu's sql quries Prabu's sql quries
Prabu's sql quries Prabu Cse
 
List , tuples, dictionaries and regular expressions in python
List , tuples, dictionaries and regular expressions in pythonList , tuples, dictionaries and regular expressions in python
List , tuples, dictionaries and regular expressions in pythonchanna basava
 
iRODS Rule Language Cheat Sheet
iRODS Rule Language Cheat SheetiRODS Rule Language Cheat Sheet
iRODS Rule Language Cheat SheetSamuel Lampa
 
Obtain better data accuracy using reference tables
Obtain better data accuracy using reference tablesObtain better data accuracy using reference tables
Obtain better data accuracy using reference tablesKiran Venna
 

What's hot (19)

Perl names values and variables
Perl names values and variablesPerl names values and variables
Perl names values and variables
 
MYSQL
MYSQLMYSQL
MYSQL
 
Sql Tags
Sql TagsSql Tags
Sql Tags
 
Les10
Les10Les10
Les10
 
Php Using Arrays
Php Using ArraysPhp Using Arrays
Php Using Arrays
 
Php array
Php arrayPhp array
Php array
 
Class 4 - PHP Arrays
Class 4 - PHP ArraysClass 4 - PHP Arrays
Class 4 - PHP Arrays
 
Sets
SetsSets
Sets
 
My sql Syntax
My sql SyntaxMy sql Syntax
My sql Syntax
 
学生向けScalaハンズオンテキスト
学生向けScalaハンズオンテキスト学生向けScalaハンズオンテキスト
学生向けScalaハンズオンテキスト
 
Prabu's sql quries
Prabu's sql quries Prabu's sql quries
Prabu's sql quries
 
Arrays in PHP
Arrays in PHPArrays in PHP
Arrays in PHP
 
List , tuples, dictionaries and regular expressions in python
List , tuples, dictionaries and regular expressions in pythonList , tuples, dictionaries and regular expressions in python
List , tuples, dictionaries and regular expressions in python
 
iRODS Rule Language Cheat Sheet
iRODS Rule Language Cheat SheetiRODS Rule Language Cheat Sheet
iRODS Rule Language Cheat Sheet
 
Php array
Php arrayPhp array
Php array
 
Obtain better data accuracy using reference tables
Obtain better data accuracy using reference tablesObtain better data accuracy using reference tables
Obtain better data accuracy using reference tables
 
Introduction to perl_lists
Introduction to perl_listsIntroduction to perl_lists
Introduction to perl_lists
 
Lab5 sub query
Lab5   sub queryLab5   sub query
Lab5 sub query
 
R part iii
R part iiiR part iii
R part iii
 

Similar to Python Tuples and Sets Guide

Similar to Python Tuples and Sets Guide (20)

5. string
5. string5. string
5. string
 
SQL Tutorial for Beginners
SQL Tutorial for BeginnersSQL Tutorial for Beginners
SQL Tutorial for Beginners
 
SQL Query
SQL QuerySQL Query
SQL Query
 
SQL
SQLSQL
SQL
 
Les13
Les13Les13
Les13
 
Sql tutorial
Sql tutorialSql tutorial
Sql tutorial
 
Mysql1
Mysql1Mysql1
Mysql1
 
Lists and arrays
Lists and arraysLists and arrays
Lists and arrays
 
PPT of Common Table Expression (CTE), Window Functions, JOINS, SubQuery
PPT  of Common Table Expression (CTE), Window Functions, JOINS, SubQueryPPT  of Common Table Expression (CTE), Window Functions, JOINS, SubQuery
PPT of Common Table Expression (CTE), Window Functions, JOINS, SubQuery
 
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term RewritingCompiler Construction | Lecture 5 | Transformation by Term Rewriting
Compiler Construction | Lecture 5 | Transformation by Term Rewriting
 
98765432345671223Intro-to-PostgreSQL.ppt
98765432345671223Intro-to-PostgreSQL.ppt98765432345671223Intro-to-PostgreSQL.ppt
98765432345671223Intro-to-PostgreSQL.ppt
 
Set relationship, set operation and sigmoid
Set relationship, set operation and sigmoidSet relationship, set operation and sigmoid
Set relationship, set operation and sigmoid
 
SQL PPT.pptx
SQL PPT.pptxSQL PPT.pptx
SQL PPT.pptx
 
ADVANCE ITT BY PRASAD
ADVANCE ITT BY PRASADADVANCE ITT BY PRASAD
ADVANCE ITT BY PRASAD
 
2. data types, variables and operators
2. data types, variables and operators2. data types, variables and operators
2. data types, variables and operators
 
Sql slid
Sql slidSql slid
Sql slid
 
Cursors, triggers, procedures
Cursors, triggers, proceduresCursors, triggers, procedures
Cursors, triggers, procedures
 
Intermediate Perl
Intermediate PerlIntermediate Perl
Intermediate Perl
 
Sql Document in Testing
Sql Document in TestingSql Document in Testing
Sql Document in Testing
 
SQL
SQLSQL
SQL
 

More from PhD Research Scholar (20)

Ajax
AjaxAjax
Ajax
 
Quiz servlet
Quiz servletQuiz servlet
Quiz servlet
 
Quiz
QuizQuiz
Quiz
 
servlet db connectivity
servlet db connectivityservlet db connectivity
servlet db connectivity
 
2.java script dom
2.java script  dom2.java script  dom
2.java script dom
 
1.java script
1.java script1.java script
1.java script
 
Quiz javascript
Quiz javascriptQuiz javascript
Quiz javascript
 
Thread&amp;multithread
Thread&amp;multithreadThread&amp;multithread
Thread&amp;multithread
 
String
StringString
String
 
Streams&amp;io
Streams&amp;ioStreams&amp;io
Streams&amp;io
 
Packages
PackagesPackages
Packages
 
Interface in java
Interface in javaInterface in java
Interface in java
 
Inner classes in java
Inner classes in javaInner classes in java
Inner classes in java
 
Inheritance
InheritanceInheritance
Inheritance
 
Exception handling
Exception handlingException handling
Exception handling
 
Applets
AppletsApplets
Applets
 
Abstract class
Abstract classAbstract class
Abstract class
 
4. functions
4. functions4. functions
4. functions
 
3.2 looping statement
3.2 looping statement3.2 looping statement
3.2 looping statement
 
3.1 conditional statement
3.1 conditional statement3.1 conditional statement
3.1 conditional statement
 

Recently uploaded

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 

Recently uploaded (20)

Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 

Python Tuples and Sets Guide

  • 2. Motivations The No Fly List is a list, created and maintained by the United States government's Terrorist Screening Center, of people who are not permitted to board a commercial aircraft for travel in or out of the United States. Suppose we need to write a program that checks whether a person is in the No Fly List. You can use a Python list to store the persons in the No Fly List. However, a more efficient data structure for this application is a set. 2ARULKUMAR V AP/CSE SECE
  • 3. Objectives • To use tuples as immutable lists (§14.2). • To use sets for storing and fast accessing non- duplicate elements (§14.3). • To understand the performance differences between sets and lists (§14.4). • To store key/value pairs in a dictionary and access value using the key (§14.5). • To use dictionaries to develop applications (§14.6). 3ARULKUMAR V AP/CSE SECE
  • 4. Tuples 4 Tuples are like lists except they are immutable. Once they are created, their contents cannot be changed. If the contents of a list in your application do not change, you should use a tuple to prevent data from being modified accidentally. Furthermore, tuples are more efficient than lists. ARULKUMAR V AP/CSE SECE
  • 5. Creating Tuples 5 t1 = () # Create an empty tuple t2 = (1, 3, 5) # Create a set with three elements # Create a tuple from a list t3 = tuple([2 * x for x in range(1, 5)]) # Create a tuple from a string t4 = tuple("abac") # t4 is ['a', 'b', 'a', 'c'] ARULKUMAR V AP/CSE SECE
  • 6. Tuples 6 Tuples can be used like lists except they are immutable. TupleDemo Run ARULKUMAR V AP/CSE SECE
  • 7. Sets 7 Sets are like lists to store a collection of items. Unlike lists, the elements in a set are unique and are not placed in any particular ordered. If your application does not care about the order of the elements, using a set to store elements is more efficient than using lists. The syntax for sets is braces {}. ARULKUMAR V AP/CSE SECE
  • 8. Creating Sets 8 s1 = set() # Create an empty set s2 = {1, 3, 5} # Create a set with three elements s3 = set([1, 3, 5]) # Create a set from a tuple # Create a set from a list s4 = set([x * 2 for x in range(1, 10)]) # Create a set from a string s5 = set("abac") # s5 is {'a', 'b', 'c'} ARULKUMAR V AP/CSE SECE
  • 9. Manipulating and Accessing Sets 9 >>> s1 = {1, 2, 4} >>> s1.add(6) >>> s1 {1, 2, 4, 6} >>> len(s1) 4 >>> max(s1) 6 >>> min(s1) 1 >>> sum(s1) 13 >>> 3 in s1 False >>> s1.remove(4) >>> s1 {1, 2, 6} >>> ARULKUMAR V AP/CSE SECE
  • 10. Subset and Superset 10 >>> s1 = {1, 2, 4} >>> s2 = {1, 4, 5, 2, 6} >>> s1.issubset(s2) # s1 is a subset of s2 True >>> >>> s1 = {1, 2, 4} >>> s2 = {1, 4, 5, 2, 6} >>> s2.issuperset(s1) # s2 is a superset of s1 True >>> ARULKUMAR V AP/CSE SECE
  • 11. Equality Test 11 >>> s1 = {1, 2, 4} >>> s2 = {1, 4, 2} >>> s1 == s2 True >>> s1 != s2 False >>> ARULKUMAR V AP/CSE SECE
  • 12. Comparison Operators 12 Note that it makes no sense to compare the sets using the conventional comparison operators (>, >=, <=, <), because the elements in a set are not ordered. However, these operators have special meaning when used for sets. s1 > s2 returns true is s1 is a proper superset of s2. s1 >= s2 returns true is s1 is a superset of s2. s1 < s2 returns true is s1 is a proper subset of s2. s1 <= s2 returns true is s1 is a subset of s2. ARULKUMAR V AP/CSE SECE
  • 13. Set Operations (union, |) 13 >>> s1 = {1, 2, 4} >>> s2 = {1, 3, 5} >>> s1.union(s2) {1, 2, 3, 4, 5} >>> >>> s1 | s2 {1, 2, 3, 4, 5} >>> ARULKUMAR V AP/CSE SECE
  • 14. Set Operations (intersection, &) 14 >>> s1 = {1, 2, 4} >>> s2 = {1, 3, 5} >>> s1.intersection(s2) {1} >>> >>> s1 & s2 {1} >>> ARULKUMAR V AP/CSE SECE
  • 15. Set Operations (difference, -) 15 >>> s1 = {1, 2, 4} >>> s2 = {1, 3, 5} >>> s1.difference(s2) {2, 4} >>> >>> s1 - s2 {2, 4} >>> ARULKUMAR V AP/CSE SECE
  • 16. Set Operations (symetric_difference, ^) 16 >>> s1 = {1, 2, 4} >>> s2 = {1, 3, 5} >>> s1.symmetric_difference(s2) {2, 3, 4, 5} >>> >>> s1 ^ s2 {2, 3, 4, 5} >>> ARULKUMAR V AP/CSE SECE
  • 18. Comparing Performance of Sets and Lists 18 SetListPerformanceTest Run ARULKUMAR V AP/CSE SECE
  • 19. Dictionary Why dictionary? Suppose your program stores a million students and frequently searches for a student using the social security number. An efficient data structure for this task is the dictionary. A dictionary is a collection that stores the elements along with the keys. The keys are like an indexer. 19ARULKUMAR V AP/CSE SECE
  • 20. Key/value pairs 20 Search keys Corresponding element values … . . Entry A dictionary ARULKUMAR V AP/CSE SECE
  • 21. Creating a Dictionary dictionary = {} # Create an empty dictionary dictionary = {"john":40, "peter":45} # Create a dictionary 21ARULKUMAR V AP/CSE SECE
  • 22. Adding/Modifying Entries To add an entry to a dictionary, use dictionary[key] = value For example, dictionary["susan"] = 50 22ARULKUMAR V AP/CSE SECE
  • 23. Deleting Entries To delete an entry from a dictionary, use del dictionary[key] For example, del dictionary["susan"] 23ARULKUMAR V AP/CSE SECE
  • 24. Looping Entries for key in dictionary: print(key + ":" + str(dictionary[key])) 24ARULKUMAR V AP/CSE SECE
  • 25. The len and in operators len(dictionary) returns the number of the elements in the dictionary. 25 >>> dictionary = {"john":40, "peter":45} >>> "john" in dictionary True >>> "johnson" in dictionary False ARULKUMAR V AP/CSE SECE
  • 26. The Dictionary Methods 26 dict keys(): tuple values(): tuple items(): tuple clear(): void get(key): value pop(key): value popitem(): tuple Returns a sequence of keys. Returns a sequence of values. Returns a sequence of tuples (key, value). Deletes all entries. Returns the value for the key. Removes the entry for the key and returns its value. Returns a randomly-selected key/value pair as a tuple and removes the selected entry. ARULKUMAR V AP/CSE SECE
  • 27. Case Studies: Occurrences of Words 27 Run This case study writes a program that counts the occurrences of words in a text file and displays the words and their occurrences in alphabetical order of words. The program uses a dictionary to store an entry consisting of a word and its count. For each word, check whether it is already a key in the dictionary. If not, add to the dictionary an entry with the word as the key and value 1. Otherwise, increase the value for the word (key) by 1 in the dictionary. CountOccurrenceOfWords ARULKUMAR V AP/CSE SECE