logo

Python Dictionary


Show

All the versions of Python constitute every key is divided from its value by a colon (:), each of the items is parted by commas, and the entire value is surrounded in curly braces. An unfilled dictionary with no items is written with just two curly braces, for instance: {}. Keys are sole inside a dictionary as values may not be. The values of a dictionary could belong to any type, however, the keys should be considered immutable data types such as strings, numbers, or tuples.

Accessing Values in Dictionary

To access dictionary elements, users could utilize the familiar square brackets along with the key to get its value. Following is a simple example :

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

When the above code is executed, it produces the following result :

dict['Name']:  Zara
dict['Age']:  7

If we attempt to access a data item with a key, which is not part of the dictionary, we get an error as follows :

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']

When the above code is executed, it produces the following result :

dict['Alice']:
Traceback (most recent call last):
   File "test.py", line 4, in 
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

Updating Dictionary

You can update a dictionary by adding a new entry or a key-value pair, modifying an existing entry, or deleting an existing entry as shown below in the simple example :

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

When the above code is executed, it produces the following result :

dict['Age']:  8
dict['School']:  DPS School

Delete Dictionary Elements

Users could either take away individual dictionary elements or clear the whole contents of a dictionary. Users can remove the whole dictionary in a sole operation.

To explicitly remove an entire dictionary, just use the del statement. Following is a simple example :

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear();     # remove all entries in dict
del dict ;        # delete entire dictionary

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

This produces the following result. Note that an exception is raised because after del dict dictionary does not exist anymore:

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in 
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Note- del() method is discussed in subsequent section.

Properties of Dictionary Keys

Dictionary values do not consider any barriers. These are restrictions-free. Values could be any arbitrary Python object, such as standard objects or maybe user-defined objects. Yet, the same is not true for the keys.

There are two important points to remember about dictionary keys?

(a) More than one entry per key is not allowed. Which means no duplicate key is allowed. When duplicate keys are encountered during the assignment, the last assignment wins. For example :

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']

When the above code is executed, it produces the following result :

dict['Name']:  Manni

(b) Keys must be immutable. This means you can use strings, numbers, or tuples as dictionary keys but something like ['key'] is not allowed. Following is a simple example :

#!/usr/bin/python

dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']

When the above code is executed, it produces the following result :

Traceback (most recent call last):
   File "test.py", line 3, in 
      dict = {['Name']: 'Zara', 'Age': 7};
TypeError: unhashable type: 'list'

Built-in Dictionary Functions & Methods

Python includes the following dictionary functions :

Sr.No.

Function with Description

1

cmp(dict1, dict2)

Compares elements of both direct.

2

len(dict)

Gives the total length of the dictionary. This would be equal to the number of items in the dictionary.

3

str(dict)

Produces a printable string representation of a dictionary

4

type(variable)

Returns the type of the passed variable. If the passed variable is a dictionary, then it would return a dictionary type.

Does python include following dictionary methods?

Sr.No.

Methods with Description

1

dict.clear()

Removes all elements of dictionary<emdict< em=""></emdict<>

2

dict.copy()

Returns a shallow copy of dictionary<emdict< em=""></emdict<>

3

dict.fromkeys()

Create a new dictionary with keys from seq and values set valuevalue>.

4

dict.get(key, default=None)

For key, returns value or default if key not in the dictionary

5

dict.has_key(key)

Returns true if key in dictionary dict, false otherwise

6

dict.items()

Returns a list of dict's (key, value) tuple pairs

7

dict.keys()

Returns list of dictionary dict's keys

8

dict.setdefault(key, default=None)

Similar to get(), but will set dict[key]=default if key is not already in dict

9

dict.update(dict2)

Adds dictionary dict2's key-values pairs to dict

10

dict.values()

Returns list of dictionary dict's values

Here at Intellinuts, we have created a complete Python tutorial for Beginners to get started in Python.