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)