DEV Community

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

Posted on • Edited on

Dictionary functions in Python (1)

Buy Me a Coffee

*Memo:

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

keys(), values() and items() can be used with a dictionary as shown below:

*Memo:

  • From the dictionary:
    • keys() can get keys.
    • values() can get values:
    • items() can get pairs of a key and value.
    • Each of them has no arguments.

<1D dictionary>:

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

print(v.keys())
# dict_keys(['name', 'age'])

print(v.values())
# dict_values(['John', 36])

print(v.items())
# dict_items([('name', 'John'), ('age', 36)])
Enter fullscreen mode Exit fullscreen mode

<2D dictionary>:

v = {'person1':{'name':'John', 'age':36},
     'person2':{'name':'Anna', 'age':24}}

print(v.keys())
# dict_keys(['person1', 'person2'])

print(v.values())
# dict_values([{'name': 'John', 'age': 36},
#              {'name': 'Anna', 'age': 24}])

print(v.items())
# dict_items([('person1', {'name': 'John', 'age': 36}),
#             ('person2', {'name': 'Anna', 'age': 24})])

print(v['person2'].keys())
# dict_keys(['name', 'age'])

print(v['person2'].values())
# dict_values(['Anna', 24])

print(v['person2'].items())
# dict_items([('name', 'Anna'), ('age', 24)])
Enter fullscreen mode Exit fullscreen mode

get() can get a value from the dictionary by a key as shown below:

*Memo:

  • The 1st argument is key(Required-Type:Hashable):
    • Don't use key=.
  • The 2nd argument is default(Optional-Default:None-Type:Any) to return it if key doesn't exist:
    • Don't use default=.

<1D dictionary>:

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

<2D dictionary>:

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

update() can update the dictionary as shown below:

*Memo:

  • The 1st argument is mapping or iterable(Optional-Type:Mapping/Iterable):
    • mapping is a dictionary.
    • iterable is e.g. [(key, value), ...].
    • Don't use mapping= and iterable=.
  • The 2nd arguments are **kwargs(Optional-Default:{}-Type:Any):
    • Don't use any keywords like **kwargs=, kwargs=, etc.
  • |= can do update().

<1D dictionary>:

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

v.update({'name':'Emily', 'gender':'Female'})
v.update([('name', 'Emily'), ('gender', 'Female')])
v.update(name='Emily', gender='Female')
v.update({'name':'Emily'}, gender='Female')
v.update([('name', 'Emily')], gender='Female')
v |= {'name':'Emily', 'gender':'Female'} 
v |= [('name', 'Emily'), ('gender', 'Female')]

print(v)
# {'name': 'Emily', 'age': 36, 'gender': 'Female'}
Enter fullscreen mode Exit fullscreen mode

<2D dictionary>:

v = {'person1':{'name':'John', 'age':36},
     'person2':{'name':'Anna', 'age':24}}

v.update({'person1':{'name':'Emily', 'gender':'Female'}})
v.update([('person1', {'name':'Emily', 'gender':'Female'})])
v.update(person1={'name':'Emily', 'gender':'Female'})

v['person2'].update({'name':'Peter', 'gender':'Male'})
v['person2'].update([('name', 'Peter'), ('gender', 'Male')])
v['person2'].update(name='Peter', gender='Male')

print(v)
# {'person1': {'name': 'Emily', 'gender': 'Female'},
#  'person2': {'name': 'Peter', 'age': 24, 'gender': 'Male'}}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)