DEV Community

Guru prasanna
Guru prasanna

Posted on

Python Day-29 Dictionary- Exercises, Tasks

Dictionary-{}:

--> Store data values in Key:value pairs
--> ordered, changeable and do not allow duplicates.

Exercises:
1.

menu = {'idli':10, 'dosai':20, 'poori':30}
print(menu)

menu['pongal'] = 40 

del menu['idli']
print(menu)

print(menu['dosai'])
Enter fullscreen mode Exit fullscreen mode

Output:

{'idli': 10, 'dosai': 20, 'poori': 30}
{'dosai': 20, 'poori': 30, 'pongal': 40}
20
Enter fullscreen mode Exit fullscreen mode

2. To add key:value pairs in empty dictionary,Usage of get() function

time_table = {}

time_table['tamil'] = 10
time_table['english']= 10

print(time_table)

print(time_table['tamil'])
print(time_table.get('tamil'))
print(time_table.get('maths'))
print(time_table['maths'])
Enter fullscreen mode Exit fullscreen mode

Output:

{'tamil': 10, 'english': 10}
10
10
None
KeyError: 'maths'
Enter fullscreen mode Exit fullscreen mode

--> If normally we enter key which is not in dictionary then output will be KeyError.
--> Instead if we use get() function it returns none.

3.To get keys,values and both

menu = {'idli':10, 'dosai':20, 'poori':30}
print(menu)
print(menu.keys())
print(menu.values())
print(menu.items())
Enter fullscreen mode Exit fullscreen mode

Output:

{'idli': 10, 'dosai': 20, 'poori': 30}
dict_keys(['idli', 'dosai', 'poori'])
dict_values([10, 20, 30])
dict_items([('idli', 10), ('dosai', 20), ('poori', 30)])
Enter fullscreen mode Exit fullscreen mode

Keys-->Prints keys from the dictionary(dict_name.keys()).
values-->Prints values from the dictionary(dict_name.values()).
items-->Prints keys and values as tuples from the dictionary (dict_name.items()).

4. To get keys or values or items seperately from dictionary.

fruits_menu = {'apple':100, 'banana':80, 'grapes':120}

for fruit in fruits_menu.keys():
    print(fruit)

for price in fruits_menu.values():
    print(price)

for fruit, price in fruits_menu.items():
    print(fruit, price)
Enter fullscreen mode Exit fullscreen mode

Output:

apple
banana
grapes
100
80
120
apple 100
banana 80
grapes 120
Enter fullscreen mode Exit fullscreen mode

5. Print values if the key contains letter 'e'.

fruits_menu = {'apple':100, 'banana':80, 'grapes':120}

for fruit in fruits_menu.keys():
    if 'e' in fruit:
        print(fruits_menu[fruit])
Enter fullscreen mode Exit fullscreen mode

Output:

100
120
Enter fullscreen mode Exit fullscreen mode

6. To convert dictionary into tuples or list.

fruits_menu = {'apple':100, 'banana':80, 'grapes':120}

print(list(fruits_menu))
print(tuple(fruits_menu))
Enter fullscreen mode Exit fullscreen mode

Output:

['apple', 'banana', 'grapes']
('apple', 'banana', 'grapes')
Enter fullscreen mode Exit fullscreen mode

7. Nested dictionary.

emp1 = {'name':'guru prasanna', 'qual':'B.Com'}
emp2 = {'name':'lakshmi pritha', 'qual': 'M.E'}

print(emp1)
print(emp2)

employees = {101:emp1, 102:emp2}
print(employees)
Enter fullscreen mode Exit fullscreen mode

Output:

{'name': 'guru prasanna', 'qual': 'B.Com'}
{'name': 'lakshmi pritha', 'qual': 'M.E'}
{101: {'name': 'guru prasanna', 'qual': 'B.Com'}, 102: {'name': 'lakshmi pritha', 'qual': 'M.E'}}
Enter fullscreen mode Exit fullscreen mode

8. To get employees name alone from the dictionary.

emp1 = {'name':'guru prasanna', 'qual':'B.Com'}
emp2 = {'name':'lakshmi pritha', 'qual': 'M.E'}


employees = {101:emp1, 102:emp2}
print(employees)

for roll_no, employee in employees.items():
    for key, value in employee.items():
        if key == 'name':
            print(employee[key])
Enter fullscreen mode Exit fullscreen mode

Output:

{101: {'name': 'guru prasanna', 'qual': 'B.Com'}, 102: {'name': 'lakshmi pritha', 'qual': 'M.E'}}
guru prasanna
lakshmi pritha
Enter fullscreen mode Exit fullscreen mode

9. To get B.com employee alone.

emp1 = {'name':'guru prasanna', 'qual':'B.Com'}
emp2 = {'name':'lakshmi pritha', 'qual': 'M.E'}

employees = {101:emp1, 102:emp2}

for roll_no, employee in employees.items():
    for key, value in employee.items():
        if value == 'B.Com':
            print(employee['name'])
Enter fullscreen mode Exit fullscreen mode

Output:

guru prasanna
Enter fullscreen mode Exit fullscreen mode

10. To increase 10% of each values.

fruits_menu = {'apple':100, 'banana':80, 'grapes':120}
for fruit in fruits_menu.values():
    fruit=fruit+(fruit/10)
    print(fruit)
Enter fullscreen mode Exit fullscreen mode

Output:

110.0
88.0
132.0
Enter fullscreen mode Exit fullscreen mode

11. To convert keys--> values and values--> keys.

fruits_menu = {'apple':100, 'banana':80, 'grapes':120}
new_menu = {}

for fruit,price in fruits_menu.items():
    new_menu[price] = fruit

print(new_menu)
Enter fullscreen mode Exit fullscreen mode

Output:

{100: 'apple', 80: 'banana', 120: 'grapes'}
Enter fullscreen mode Exit fullscreen mode

Dictionary Comprehension

fruits_menu = {'apple':100, 'banana':80, 'grapes':120}

menu_dict = {(fruit,price) for fruit,price in fruits_menu.items()}
print(menu_dict)

menu_dict = {fruit: price for fruit,price in fruits_menu.items()}
print(menu_dict)

#To reverse key-->value and value-->key

menu_dict = {price : fruit for fruit,price in fruits_menu.items()}
print(menu_dict)
Enter fullscreen mode Exit fullscreen mode

Output:

{('grapes', 120), ('apple', 100), ('banana', 80)}
{'apple': 100, 'banana': 80, 'grapes': 120}
{100: 'apple', 80: 'banana', 120: 'grapes'}
Enter fullscreen mode Exit fullscreen mode

get()
The get() method returns the value of the item with the specified key.
-->If key does not exist in the dictionary then it returns none.

fruits_menu = {'apple':100, 'banana':80, 'grapes':120}

print(fruits_menu.get('apple',"not available"))
print(fruits_menu.get('kiwi',"not available"))
Enter fullscreen mode Exit fullscreen mode

Output:

100
not available
Enter fullscreen mode Exit fullscreen mode

Find frequency of letters in a given string

#frequency of each letter in a given string
freq = {}
name = 'guruprasanna'
for letter in name: 
    freq[letter] = freq.get(letter,0)+1

print(freq)
Enter fullscreen mode Exit fullscreen mode

Output:

{'g': 1, 'u': 2, 'r': 2, 'p': 1, 'a': 3, 's': 1, 'n': 2}
Enter fullscreen mode Exit fullscreen mode

To convert dictionary to set

csk = {'dhoni':101, 'jadeja':102}
india = {'virat':103, 'jadeja':102}

print(set(csk))
print(set(india))

print(set(csk.keys()))
print(set(india.keys()))
Enter fullscreen mode Exit fullscreen mode

Output:

{'dhoni', 'jadeja'}
{'virat', 'jadeja'}
{'dhoni', 'jadeja'}
{'virat', 'jadeja'}
Enter fullscreen mode Exit fullscreen mode

setdefault()

--> The setdefault() method returns the value of the item with the specified key.
--> If the key does not exist, insert the key, with the specified value.

csk = {'dhoni':101, 'jadeja':102}
india = {'virat':103, 'jadeja':102}

csk.setdefault('rohit',100)
print(csk)
csk.setdefault('dhoni',100)
print(csk)
Enter fullscreen mode Exit fullscreen mode

Output:

{'dhoni': 101, 'jadeja': 102, 'rohit': 100}
{'dhoni': 101, 'jadeja': 102, 'rohit': 100}
Enter fullscreen mode Exit fullscreen mode

Tasks:

1. Find:
a) Common in both the teams
b) Present in any one of the teams
c) Total Players names

csk = {'dhoni':101, 'jadeja':102}
india = {'virat':103, 'jadeja':102}

csk1 = set(csk.keys())
india1 = set(india.keys())

#Common in both the teams
print(csk1 & india1)

#Present in any one of the teams
print(csk1 ^ india1)

#Total Players names
print(csk1 | india1)
Enter fullscreen mode Exit fullscreen mode

Output:

{'jadeja'}
{'dhoni', 'virat'}
{'jadeja', 'dhoni', 'virat'}
Enter fullscreen mode Exit fullscreen mode

2. Find frequency of words in a string- 'a rose is a rose is a rose'.

sentence = "a rose is a rose is a rose"
words = sentence.split()
freq = {}

for word in words:
    freq[word] = freq.get(word, 0) + 1

print(freq)
Enter fullscreen mode Exit fullscreen mode

Output:

{'a': 3, 'rose': 3, 'is': 2}
Enter fullscreen mode Exit fullscreen mode

3. Find total,average and high score in a dictionary.
players = {'jaiswal':75, 'rohit':55, 'virat':95}

players = {'jaiswal':75, 'rohit':55, 'virat':95}
total=0
#total 
#average

for score in players.values():
    total=total+score
    average=total/3
print(total)
print(average)
Enter fullscreen mode Exit fullscreen mode

Output:

225
75.0
Enter fullscreen mode Exit fullscreen mode
#high score
players = {'jaiswal':75, 'rohit':55, 'virat':95}
scores = list(players.values())
high_score = scores[0]


for score in scores:
    if high_score<score:
        high_score=score

print(high_score)
Enter fullscreen mode Exit fullscreen mode

Output:

95
Enter fullscreen mode Exit fullscreen mode

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more