DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on

Dictionary in Python (4)

Buy Me a Coffee

*Memos:

  • My post explains dictionary (1).
  • My post explains dictionary (2).
  • My post explains useful functions for a dictionary (1).

You can use get() to get a value from a dictionary by a key as shown below:
*Memos:

  • The 1st argument is key(Required) for a key.
  • The 2nd argument is default(Optional-Default:None) to return a value when a key doesn't exist.
  • Don't use key= and default=.
v = {'name':'John', 'age':36}

print(v.get('name')) # John
print(v.get('gender')) # None
print(v.get('gender', "Doesn't exist!")) # Doesn't exist!
Enter fullscreen mode Exit fullscreen mode
v = {'person1':{'name':'John', 'age':36},
     'person2':{'name':'Anna', 'age':24}}
print(v.get('person2')) # {'name': 'Anna', 'age': 24}
print(v['person2'].get('name')) # Anna
Enter fullscreen mode Exit fullscreen mode

You can use update() to update a dictionary as shown below:
*Memos:

  • The 1st argument is key(Required) for a key.
  • The 2nd argument is default(Optional-Default:None) to return a value when a key doesn't exist.
  • Don't use key= and default=.
v = {'name':'John', 'age':36}

v.update({'name':'David', 'gender':'Male'})
print(v)
# {'name': 'David', 'age': 36, 'gender': 'Male'}
Enter fullscreen mode Exit fullscreen mode
v = {'person1':{'name':'John', 'age':36},
     'person2':{'name':'Anna', 'age':24}}
v.update({'person1':{'name':'David', 'gender':'Male'}})
v['person2'].update({'name':'Tom', 'gender':'Male'})
print(v)
# {'person1': {'name': 'David', 'gender': 'Male'},
#  'person2': {'name': 'Tom', 'age': 24, 'gender': 'Male'}}
Enter fullscreen mode Exit fullscreen mode

You can use a del statement to remove a key and value from a dictionary by a key in each [] or to remove a variable itself as shown below:

v = {'name':'John', 'age':36}

del v['name']
print(v) # {'age': 36}

del v
print(v) # NameError: name 'v' is not defined
Enter fullscreen mode Exit fullscreen mode
v = {'person1':{'name':'John', 'age':36},
     'person2':{'name':'Anna', 'age':24}}
del v['person1']
print(v) # {'person2': {'name': 'Anna', 'age': 24}}

del v['person2']['name']
print(v) # {'person2': {'age': 24}}

del v
print(v) # NameError: name 'v' is not defined
Enter fullscreen mode Exit fullscreen mode

You can use pop() to remove a key and value from a dictionary by a key, throwing the value as shown below:
*Memos:

  • The 1st argument is key(Required) for a key.
  • The 2nd argument is default(Optional) to return a value when a key doesn't exist. *There is no default value.
  • If key doesn't exist and default isn't set, there is error.
  • Don't use key= and default=.
v = {'name':'John', 'age':36}

print(v.pop('name')) # John
print(v) # {'age': 36}

print(v.pop('gender', "Doesn't exist!")) # Doesn't exist!
print(v) # {'age': 36}

print(v.pop('gender')) # KeyError: 'gender'
Enter fullscreen mode Exit fullscreen mode
v = {'person1':{'name':'John', 'age':36},
     'person2':{'name':'Anna', 'age':24}}
print(v.pop('person1')) # {'name': 'John', 'age': 36}
print(v['person2'].pop('name')) # Anna
print(v) # {'person2': {'age': 24}}
Enter fullscreen mode Exit fullscreen mode

You can use popitem() to remove the last key and value from a dictionary, throwing the value as shown below:
*Memos:

  • There are no arguments.
  • If a dictionary is empty, there is error.
v = {'name':'John', 'age':36, 'gender':'Male'}

print(v.popitem()) # ('gender', 'Male')
print(v) # {'name': 'John', 'age': 36}

print(v.popitem()) # ('age', 36)
print(v) # {'name': 'John'}

print(v.popitem()) # ('name', 'John')
print(v) # {}

print(v.popitem()) # KeyError: 'popitem(): dictionary is empty'
Enter fullscreen mode Exit fullscreen mode
v = {'person1':{'name':'John', 'age':36},
     'person2':{'name':'Anna', 'age':24}}
print(v.popitem()) # ('person2', {'name': 'Anna', 'age': 24})
print(v) # {'person1': {'name': 'John', 'age': 36}}

print(v['person1'].popitem()) # ('age', 36)
print(v) # {'person1': {'name': 'John'}}

print(v['person1'].popitem()) # ('name', 'John')
print(v) # {'person1': {}}
Enter fullscreen mode Exit fullscreen mode

You can use clear() to remove all keys and values from a dictionary as shown below. *There are no arguments:

v = {'name':'John', 'age':36}

v.clear()
print(v) # {}
Enter fullscreen mode Exit fullscreen mode
v = {'person1':{'name':'John', 'age':36},
     'person2':{'name':'Anna', 'age':24}}
v['person1'].clear()
print(v) # {'person1': {}, 'person2': {'name': 'Anna', 'age': 24}}

v.clear()
print(v) # {} 
Enter fullscreen mode Exit fullscreen mode

You can use copy() to copy a dictionary as shown below:
*Memos:

  • There are no arguments.
  • copy() does shallow copy.
v1 = {'name':'John', 'age':36}

v2 = v1.copy()

v2['name'] = 'David'

print(v1) # {'name': 'John', 'age': 36}
print(v2) # {'name': 'David', 'age': 36}
Enter fullscreen mode Exit fullscreen mode
v1 = {'person1':{'name':'John', 'age':36},
      'person2':{'name':'Anna', 'age':24}}
v2 = v1.copy()

v2['person1'] = {'name':'David', 'age':48}
v2['person2']['name'] = 'Tom'
v2['person2']['age'] = 18

print(v1) # {'person1': {'name': 'John', 'age': 36},
          #  'person2': {'name': 'Tom', 'age': 18}} # Here
print(v2) # {'person1': {'name': 'David', 'age': 48},
          #  'person2': {'name': 'Tom', 'age': 18}} # Here
Enter fullscreen mode Exit fullscreen mode

Top comments (0)