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'])
Output:
{'idli': 10, 'dosai': 20, 'poori': 30}
{'dosai': 20, 'poori': 30, 'pongal': 40}
20
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'])
Output:
{'tamil': 10, 'english': 10}
10
10
None
KeyError: 'maths'
--> 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())
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)])
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)
Output:
apple
banana
grapes
100
80
120
apple 100
banana 80
grapes 120
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])
Output:
100
120
6. To convert dictionary into tuples or list.
fruits_menu = {'apple':100, 'banana':80, 'grapes':120}
print(list(fruits_menu))
print(tuple(fruits_menu))
Output:
['apple', 'banana', 'grapes']
('apple', 'banana', 'grapes')
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)
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'}}
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])
Output:
{101: {'name': 'guru prasanna', 'qual': 'B.Com'}, 102: {'name': 'lakshmi pritha', 'qual': 'M.E'}}
guru prasanna
lakshmi pritha
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'])
Output:
guru prasanna
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)
Output:
110.0
88.0
132.0
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)
Output:
{100: 'apple', 80: 'banana', 120: 'grapes'}
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)
Output:
{('grapes', 120), ('apple', 100), ('banana', 80)}
{'apple': 100, 'banana': 80, 'grapes': 120}
{100: 'apple', 80: 'banana', 120: 'grapes'}
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"))
Output:
100
not available
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)
Output:
{'g': 1, 'u': 2, 'r': 2, 'p': 1, 'a': 3, 's': 1, 'n': 2}
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()))
Output:
{'dhoni', 'jadeja'}
{'virat', 'jadeja'}
{'dhoni', 'jadeja'}
{'virat', 'jadeja'}
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)
Output:
{'dhoni': 101, 'jadeja': 102, 'rohit': 100}
{'dhoni': 101, 'jadeja': 102, 'rohit': 100}
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)
Output:
{'jadeja'}
{'dhoni', 'virat'}
{'jadeja', 'dhoni', 'virat'}
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)
Output:
{'a': 3, 'rose': 3, 'is': 2}
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)
Output:
225
75.0
#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)
Output:
95
Top comments (0)