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
đź‘‹ While you are here

Reinvent your career. Join DEV.

It takes one minute and is worth it for your career.

Get started

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

đź‘‹ Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay