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