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

Top comments (0)