Python Dictionary

Keys for dictionaries have to be immutable types. This is to ensure that the key can be converted to a constant hash value for quick look-ups. Immutable types include integer, floats, strings, tuples.


empty_dict = {}



person = {'name': 'Alex', 'age': 35, 'pets': ['cat', 'dog'], 7: 'Seven'}



print(person['name']) # Alex (will throw an error if does not exist)

print(person[7]) # Seven



print(person.get('name')) # Alex



print(person.get('phone')) # None (does not throw a KeyError error)



print(person.get('phone', '911')) # 911 (return a default value if does not exist)



person['phone'] = '555-7777'



print('Update dict:')

person.update({'name': 'Lisa', 'email': 't@t.com'})

print(person['name']) # Lisa



print('Remove key and its value in the dict:')

phone = person.pop('phone')

print(phone) # 555-7777

print(person.get('phone')) # None



print('Delete key and its value in the dict:')

del person[7]

del person['pets']

print(person) # {'name': 'Lisa', 'age': 35, 'email': 't@t.com'}



print('Get number of keys in the dict:')

print(len(person)) # 3





print('Get list of keys and list of values:')

print(list(person.keys())) # ['name', 'age', 'email']

print(list(person.values())) # ['Lisa', 35, 't@t.com']

print(person.items()) # dict_items([('name', 'Lisa'), ('age', 35), ('email', 't@t.com')])



print('Loop thru keys in the dict:')

for key in person:

    print(key)



print('Loop thru keys and values in the dict:')

for key, value in person.items():

    print(key, value)



print('Check if key exist in the dict:')

print('name' in person) # True



print('Set key-value if it does not exist yet:')

person.setdefault('country', 'Canada')

print(person.get('country')) # Canada

person.setdefault('country', 'France')

print(person.get('country')) # Canada

Dictionary comprehension


names = ['Bruce Wayne','Peter Parker', 'Wade Wilson']

heroes = ['Batman', 'Spiderman', 'Deadpool']



# create dictionary using dictionary comprehension

my_dict = {name: hero for name, hero in zip(names, heroes)}

print(my_dict) # {'Bruce Wayne': 'Batman', 'Peter Parker': 'Spiderman', 'Wade Wilson': 'Deadpool'}



# create dictionary using dictionary comprehension with if condition

my_dict2 = {name: hero for name, hero in zip(names, heroes) if hero!='Deadpool'}

print(my_dict2) # {'Bruce Wayne': 'Batman', 'Peter Parker': 'Spiderman'}

Leave a Comment