DEV Community

Cover image for Python: Part 2 - Dictionaries with demos
Srinivasulu Paranduru for AWS Community Builders

Posted on • Updated on

Python: Part 2 - Dictionaries with demos

Dictionaries in Python:

1. Dictionaries

Try the commands in IDLE Shell
myCat = {'size':'fat','color':'gray','disposition':'loud'}
myCat['size']
#Output : fat
Enter fullscreen mode Exit fullscreen mode

'My cat has ' + myCat['color'] + ' fur.'

output : 'My cat has gray fur.'

Comparing the lists
[1,2,3] == [3,2,1]
#False
Enter fullscreen mode Exit fullscreen mode
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
Enter fullscreen mode Exit fullscreen mode
check the keys existing in a dictionary
'color' in info
#True
'color' not in info
#False
Enter fullscreen mode Exit fullscreen mode

1.1 Dictionary methods - keys(),values() and items()

1.1.1 Try the command:
list(info.keys())
Enter fullscreen mode Exit fullscreen mode

Output:
['size', 'color', 'disposition']

1.1.2 Try the command:
info.values()
Enter fullscreen mode Exit fullscreen mode

Output:
dict_values(['fat', 'gray', 'loud'])

1.1.3 Try the command:
 list(info.values())
Enter fullscreen mode Exit fullscreen mode

Output
['fat', 'gray', 'loud']

1.1.4 Try the command:
info.items()
Enter fullscreen mode Exit fullscreen mode

Output:
dict_items([('size', 'fat'), ('color', 'gray'), ('disposition', 'loud')])

1.1.5 Try the command:
list(info.items())
Enter fullscreen mode Exit fullscreen mode

Output:
[('size', 'fat'), ('color', 'gray'), ('disposition', 'loud')]

Dictionary with for loop

1.1.6 Try the command -
for k in info.keys() :
  print(k)
Enter fullscreen mode Exit fullscreen mode

output:

size
color
disposition

1.1.7 Try the command -
for v in info.values() :
   print(v)
Enter fullscreen mode Exit fullscreen mode

output:

fat
gray
loud

1.1.8 Try the command -
for k,v in info.items():
    print(k,v)
Enter fullscreen mode Exit fullscreen mode

output:
size fat
color gray
disposition loud

1.1.9 Try the command -
for i in info.items():
   print(i)
Enter fullscreen mode Exit fullscreen mode

output:
('size', 'fat')
('color', 'gray')
('disposition', 'loud')

1.1.10 Try the command -
'fat' in info.values()
Enter fullscreen mode Exit fullscreen mode

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'}
Enter fullscreen mode Exit fullscreen mode
1.2.1
 if 'color' in info:
      print(info['color'])

 #output:  gray

Enter fullscreen mode Exit fullscreen mode
1.2.2
if 'dress' in info :
      print(info['dress'])
#output:  ''
Enter fullscreen mode Exit fullscreen mode
1.2.3 : If the key - size exists it returns its value else empty string will be returned
info.get('size','')

Enter fullscreen mode Exit fullscreen mode

output : 'fat'

1.2.4: If the key - size it returns its value else empty string will be returned
info.get('size','medium')

Enter fullscreen mode Exit fullscreen mode

output : ''

1.2.5
picnicItems = {'apples':5,'cups':2}

print('I am bringing ' + str(picnicItems.get('napkins',0)) +' to the picnic.')
Enter fullscreen mode Exit fullscreen mode

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.')
Enter fullscreen mode Exit fullscreen mode

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'}

Enter fullscreen mode Exit fullscreen mode
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)

Enter fullscreen mode Exit fullscreen mode

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)

Enter fullscreen mode Exit fullscreen mode

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)

Enter fullscreen mode Exit fullscreen mode

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)

Enter fullscreen mode Exit fullscreen mode

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)

Enter fullscreen mode Exit fullscreen mode

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)

Enter fullscreen mode Exit fullscreen mode

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'}]
Enter fullscreen mode Exit fullscreen mode

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)