[go: up one dir, main page]

0% found this document useful (0 votes)
158 views31 pages

Problem: Write A Kids Play Program That Prints The Capital of A Country Given The Name of The Country

The document describes a program to print the capital of a country given its name by using a dictionary to map country names to their capitals. It explains that the program will: 1. Read the number of countries and corresponding country names and capitals to populate the dictionary. 2. Read the name of the country asked and use the dictionary to lookup and print the corresponding capital. 3. Dictionaries provide an efficient way to map pairs of values like country names and capitals to solve this problem.

Uploaded by

Vhan Darsh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
158 views31 pages

Problem: Write A Kids Play Program That Prints The Capital of A Country Given The Name of The Country

The document describes a program to print the capital of a country given its name by using a dictionary to map country names to their capitals. It explains that the program will: 1. Read the number of countries and corresponding country names and capitals to populate the dictionary. 2. Read the name of the country asked and use the dictionary to lookup and print the corresponding capital. 3. Dictionaries provide an efficient way to map pairs of values like country names and capitals to solve this problem.

Uploaded by

Vhan Darsh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 31

Problem

Write a kids play program that prints the


capital of a country given the name of the
country.
PAC For Quiz Problem

Input Processing Output

A set of Map each question Answer for the


question/ to the question
answer pairs corresponding
and a question answer. Find the
answer for the
given question
Pseudocode

READ num_of_countries
FOR i=0 to num_of_countries
READ name_of_country
READ capital_of_country
MAP name_of_country to capital_of_country
END FOR
READ country_asked
GET capital for country_asked
PRINT capital
Already we know
• To read values from user
• Print values
• We have to yet know to
– Map a pair of values

Python provides Dictionaries to Map a pair of values


Introduction to Dictionaries
• Pair of items
• Each pair has key and value
• Keys should be unique
• Key and value are separated by :
• Each pair is separated by ,

Example:
dict = {‘Alice’ : 1234, ‘Bob’ : 1235}
Properties of Dictionaries
• unordered mutable collections;
• items are stored and fetched by key,
• Accessed by key, not offset position
• Unordered collections of arbitrary objects
• Variable-length, heterogeneous, and
arbitrarily nestable
Creating a Dictionary
• Creating an EMPTY • Creating a dictionary with items
dictionary dictname = {key1:val1, key2:val2,
dictname = {} ….}
Example: Example:
Dict1 = {} MyDict = { 1 : ‘Chocolate’, 2 :
MyDict = {} ‘Icecream’}
Books = {} MyCourse = {‘MS’ : ‘Python’, ‘IT’ : ‘C’,
‘CSE’ : ‘C++’, ‘MCA’ : ‘Java’}
MyCircle = {‘Hubby’:9486028245,
‘Mom’:9486301601}
Accessing Values
• Using keys within square brackets
>>> print MyDict[1]
‘Chocholate’
>>> print MyCourse[‘CSE’]
‘C++’
Updating Elements
• update by adding a new item (key-value) pair
• modify an existing entry

>>>MyDict[1] = ‘Pizza’
>>>MyCourse[‘MCA’] = ‘UML’
Deleting Elements
• remove an element in a dictionary using the
key
>>>del MyCourse[‘IT’]
• remove all the elements
>>>MyCourse.clear()
• delete the dictionary
>>>del MyCourse
Basic Operations
>>> D = {'spam': 2, 'ham': 1, 'eggs': 3}
>>> len(D) # Number of entries in dictionary 3
>>> 'ham' in D # Key membership test
True
>>> list(D.keys()) # Create a new list of D's keys
['eggs', 'spam', 'ham']
Basic Operations
>>> list(D.values()) [3, 2, 1]

>>> list(D.items()) [('eggs', 3), ('spam', 2), ('ham', 1)]

>>> D.get('spam') # A key that is there

>>> print(D.get('toast')) # A key that is missing

None
Update Method
>>> D
{'eggs': 3, 'spam': 2, 'ham': 1}
>>> D2 = {'toast':4, 'muffin':5}
>>> D.update(D2)
>>> D
{'eggs': 3, 'muffin': 5, 'toast': 4, 'spam': 2, 'ham': 1}
#unordered
Pop Method
Delete and return value for a given key
>>> D = {'eggs': 3, 'muffin': 5, 'toast': 4, 'spam': 2,
'ham': 1}
>>> D.pop('muffin')
5
>>> D.pop('toast‘)
4
>>> D
{'eggs': 3, 'spam': 2, 'ham': 1}
List vs Dictionary
>>> L = []
>>> L[99] = 'spam'
Traceback (most recent call last): File "<stdin>", line
1, in ? IndexError: list assignment index out of
range
>>>D = {}
>>> D[99] = 'spam'
>>> D[99] 'spam'
>>> D {99: 'spam'}
Nesting in dictionaries
>>> jobs = []
>>> jobs.append('developer')
>>> jobs.append(‘manager‘)
rec = {}
>>> rec['name'] = 'Bob'
>>> rec['age'] = 40.5
>>> rec['job'] = jobs
Nesting in dictionaries
rec = {}
>>> rec['name'] = 'Bob'
>>> rec['age'] = 40.5
>>> rec['job'] = jobs
Nesting in dictionaries
>>> rec
{'name': 'Bob', 'age': 40.5, 'job': ['developer',
'manager']}
Nesting in dictionaries
>>> rec['name']
'Bob'
>>> rec['job']
['developer', 'manager']
>>> rec['job'][1]
'manager’
Other Ways to Make Dictionaries
D = {'name': 'Bob', 'age': 40}
D = {} # Assign by keys dynamically
D['name'] = 'Bob'
D['age'] = 40
# Creating a dictionary by assignment
dict(name='Bob', age=40)

# Creating dictionary with tuples form


dict([('name', 'Bob'), ('age', 40)])
Other Ways to Make Dictionaries
# Creating a dictionary by assignment
D = dict(name='Bob', age=40)

# Creating dictionary with tuples form


D = dict([('name', 'Bob'), ('age', 40)])
Comprehensions in Dictionaries
>>> D = {k: v for (k, v) in zip(['a', 'b', 'c'], [1, 2, 3])}

>>> D

{'b': 2, 'c': 3, 'a': 1}

>>> D = {x: x ** 2 for x in [1, 2, 3, 4]}

# Or: range(1, 5)
Comprehensions in Dictionaries
>>> D = {x: x ** 2 for x in [1, 2, 3, 4]}

# Or: range(1, 5)
Comprehensions in Dictionaries
>>> D

{1: 1, 2: 4, 3: 9, 4: 16}

>>> D = {c: c * 4 for c in 'SPAM'}

>>> D

{'S': 'SSSS', 'P': 'PPPP', 'A': 'AAAA', 'M': 'MMMM'}


Comprehensions in Dictionaries
>>> D = {c.lower(): c + '!' for c in ['SPAM', 'EGGS',
'HAM']}

>>> D

{'eggs': 'EGGS!', 'spam': 'SPAM!', 'ham': 'HAM!'}


Initializing Dictionaries
# Initialize dict from keys

>>> D = dict.fromkeys(['a', 'b', 'c'], 0)

>>> D {'b': 0, 'c': 0, 'a': 0}

# Same, but with a comprehension

>>> D = {k:0 for k in ['a', 'b', 'c']}

>>> D {'b': 0, 'c': 0, 'a': 0}


Initializing Dictionaries
# Initialize dict from keys

>>> D = dict.fromkeys(['a', 'b', 'c'], 0)

>>> D {'b': 0, 'c': 0, 'a': 0}


Initializing Dictionaries
# Comprehension

>>> D = {k: None for k in 'spam'}

>>> D {'s': None, 'p': None, 'a': None, 'm': None}


Dictionary methods
 <dict>.items()
– displays the items in the dictionary (pair of keys and values)
 <dict>.keys()
- display the keys in the dictionary
 <dict>.values()
– displays the values in the dictionary
 <dict>.pop()
– removes the last item from the dictionary
 <dict2> = <dict1>.copy()
– copies the items from dict1 to dict2
 <dict>.clear()
– removes all the items from the dictionary
Other methods
 str(dict)
– produces printable string representation of a dictionary
 len(dict)
– returns the number of items in the dictionary
Dictionaries can replace elif ladder/switch-case

print ({1:’one’,2:’two’,3:’three’,4:’four’,5:’five’}
[choice])

if choice = 3 then the code prints three

You might also like