Dictionaries in Python:
1. Dictionaries
Try the commands in IDLE Shell
myCat = {'size':'fat','color':'gray','disposition':'loud'}
myCat['size']
#Output : fat
'My cat has ' + myCat['color'] + ' fur.'
output : 'My cat has gray fur.'
Comparing the lists
[1,2,3] == [3,2,1]
#False
Comparing the dictionaries with same key value pairs in different order
info = {'size':'fat','color':'gray','disposition':'loud'}
info1 = {'color':'gray','disposition':'loud','size':'fat'}
info == info1
>Output: True
check the keys existing in a dictionary
'color' in info
#True
'color' not in info
#False
1.1 Dictionary methods - keys(),values() and items()
1.1.1 Try the command:
list(info.keys())
Output:
['size', 'color', 'disposition']
1.1.2 Try the command:
info.values()
Output:
dict_values(['fat', 'gray', 'loud'])
1.1.3 Try the command:
list(info.values())
Output
['fat', 'gray', 'loud']
1.1.4 Try the command:
info.items()
Output:
dict_items([('size', 'fat'), ('color', 'gray'), ('disposition', 'loud')])
1.1.5 Try the command:
list(info.items())
Output:
[('size', 'fat'), ('color', 'gray'), ('disposition', 'loud')]
Dictionary with for loop
1.1.6 Try the command -
for k in info.keys() :
print(k)
output:
size
color
disposition
1.1.7 Try the command -
for v in info.values() :
print(v)
output:
fat
gray
loud
1.1.8 Try the command -
for k,v in info.items():
print(k,v)
output:
size fat
color gray
disposition loud
1.1.9 Try the command -
for i in info.items():
print(i)
output:
('size', 'fat')
('color', 'gray')
('disposition', 'loud')
1.1.10 Try the command -
'fat' in info.values()
output: True
1.2 The get() Dictionary Method
Pre-requisties : Set the variable info with the dictionary value
info = {'size':'fat','color':'gray','disposition':'loud'}
1.2.1
if 'color' in info:
print(info['color'])
#output: gray
1.2.2
if 'dress' in info :
print(info['dress'])
#output: ''
1.2.3 : If the key - size exists it returns its value else empty string will be returned
info.get('size','')
output : 'fat'
1.2.4: If the key - size it returns its value else empty string will be returned
info.get('size','medium')
output : ''
1.2.5
picnicItems = {'apples':5,'cups':2}
print('I am bringing ' + str(picnicItems.get('napkins',0)) +' to the picnic.')
output: I am bringing 0 to the picnic.
1.2.6
picnicItems = {'apples':5,'cups':2}
print('I am bringing ' + str(picnicItems['napkins']) +' to the picnic.')
output: Error message
Traceback (most recent call last):
File "", line 1, in
print('I am bringing ' + str(picnicItems['napkins']) +' to the picnic.')
KeyError: 'napkins'
1.2.7 : setdefault()
eggs = {'name':'Zophie','species':'cat','age':8}
eggs.setdefault('color','black')
#output: 'black'
eggs
#output: {'name': 'Zophie', 'species': 'cat', 'age': 8, 'color': 'black'}
#if the default existing for the color key then the value won't be changed.
eggs.setdefault('color','orange')
#output: 'black'
eggs
{'name': 'Zophie', 'species': 'cat', 'age': 8, 'color': 'black'}
1.2.8: character count program
1.2.8.1
message = 'It was a bright cold day in April, and the clocks were striking thirteen.'
count = {}
for character in message :
count.setdefault(character,0)
count[character]=count[character]+1
print(count)
output:
{'I': 1, 't': 6, ' ': 13, 'w': 2, 'a': 4, 's': 3, 'b': 1, 'r': 5, 'i': 6, 'g': 2, 'h': 3, 'c': 3, 'o': 2, 'l': 3, 'd': 3, 'q': 1, 'y': 1, 'n': 4, 'A': 1, 'p': 1, ',': 1, 'e': 5, 'k': 2, '.': 1}
1.2.8.2 : convert the message to upper case and print the count
message = 'It was a bright cold day in April, and the clocks were striking thirteen.'
count = {}
for character in message.upper() :
count.setdefault(character,0)
count[character]=count[character]+1
print(count)
output:
{'I': 7, 'T': 6, ' ': 13, 'W': 2, 'A': 5, 'S': 3, 'B': 1, 'R': 5, 'G': 2, 'H': 3, 'C': 3, 'O': 2, 'L': 3, 'D': 3, 'Q': 1, 'Y': 1, 'N': 4, 'P': 1, ',': 1, 'E': 5, 'K': 2, '.': 1}
1.2.8.3 : comment the line count.setdefault(character,0) and check the response.
message = 'It was a bright cold day in April, and the clocks were striking thirteen.'
count = {}
for character in message.upper() :
# count.setdefault(character,0)
count[character]=count[character]+1
print(count)
output:
Traceback (most recent call last):
File "C:/Srinivas/3 Code/PythonPrograms/charactercount.py", line 6, in
count[character]=count[character]+1
KeyError: 'I'
count.setdefault(character,0)
This line will set the count of the character to 0 for the first time, if the variable does not exists.
1.2.8.4: Big message is assigned to the variable message and its using ''' at the start and end of the message.
message = '''Ensure your post has a cover image set to make the most of the home feed and social media platforms.
Share your post on social media platforms or with your co-workers or local communities.
Ask people to leave questions for you in the comments. It's a great way to spark additional discussion describing personally why you wrote it or why people might find it helpful.'''
count = {}
for character in message.upper() :
count.setdefault(character,0)
count[character]=count[character]+1
print(count)
output:
{'E': 30, 'N': 12, 'S': 24, 'U': 10, 'R': 19, ' ': 62, 'Y': 9, 'O': 35, 'P': 11, 'T': 23, 'H': 11, 'A': 22, 'C': 9, 'V': 2, 'I': 21, 'M': 13, 'G': 4, 'K': 4, 'F': 7, 'D': 9, 'L': 14, '.': 4, '\n': 2, 'W': 6, '-': 1, 'Q': 1, "'": 1, 'B': 1}
1.2.8.5 : Import pprint module
import pprint
message = '''Ensure your post has a cover image set to make the most of the home feed and social media platforms.
Share your post on social media platforms or with your co-workers or local communities.
Ask people to leave questions for you in the comments. It's a great way to spark additional discussion describing personally why you wrote it or why people might find it helpful.'''
count = {}
for character in message.upper() :
count.setdefault(character,0)
count[character]=count[character]+1
pprint.pprint(count)
output:
==============================
{'\n': 2,
' ': 62,
"'": 1,
'-': 1,
'.': 4,
'A': 22,
'B': 1,
'C': 9,
'D': 9,
'E': 30,
'F': 7,
'G': 4,
'H': 11,
'I': 21,
'K': 4,
'L': 14,
'M': 13,
'N': 12,
'O': 35,
'P': 11,
'Q': 1,
'R': 19,
'S': 24,
'T': 23,
'U': 10,
'V': 2,
'W': 6,
'Y': 9}
1.2.8.5 : using pprint module and using pformat
import pprint
message = '''Ensure your post has a cover image set to make the most of the home feed and social media platforms.
Share your post on social media platforms or with your co-workers or local communities.
Ask people to leave questions for you in the comments. It's a great way to spark additional discussion describing personally why you wrote it or why people might find it helpful.'''
count = {}
for character in message.upper() :
count.setdefault(character,0)
count[character]=count[character]+1
stext=pprint.pformat(count)
print(stext)
output:
{'\n': 2,
' ': 62,
"'": 1,
'-': 1,
'.': 4,
'A': 22,
'B': 1,
'C': 9,
'D': 9,
'E': 30,
'F': 7,
'G': 4,
'H': 11,
'I': 21,
'K': 4,
'L': 14,
'M': 13,
'N': 12,
'O': 35,
'P': 11,
'Q': 1,
'R': 19,
'S': 24,
'T': 23,
'U': 10,
'V': 2,
'W': 6,
'Y': 9}
1.2.9 : List of dictionaries
>>> allCats=[]
>>> allCats.append({'name':'Zophie','age':7,'color':'gray'})
>>> allCats.append({'name':'Pooka','age':5,'color':'gray'})
>>> allCats.append({'name':'Fat-tail','age':4,'color':'red'})
>>> allCats
[{'name': 'Zophie', 'age': 7, 'color': 'gray'}, {'name': 'Pooka', 'age': 5, 'color': 'gray'}, {'name': 'Fat-tail', 'age': 4, 'color': 'red'}]
Recap :
- Dictionaries contain key-value pairs. Keys are like a list's indexes.
- Dictionaries are mutable. Variables hold references to dictionary values, not the dictionary value itself.
- Dictionaries are unordered. There is no "first" key-value pair in a dictionary.
- The keys(), values(), and items() methods will return list-like values of a dictionary's keys, vaues, and both keys and values, respectively.
- The get() method can return a default value if a key doesn't exist.
- The setdefault() method can set a value if a key doesn't exist.
- The pprint module's pprint() "pretty print" function can display a dictionary value cleanly. The pformat() function returns a string value of this output.
Conclusion : Discussed about python - dictionaries used IDLE shell command for running the python code
💬 If you enjoyed reading this blog post and found it informative, please take a moment to share your thoughts by leaving a review and liking it 😀 and share this blog with ur friends and follow me in linkedin
Top comments (0)