Home > Article > Backend Development > How to modify dictionary values in Python
Use the dict.update()
method to replace the value in the dictionary, for example my_dict.update({'key': 'new value'})
.
dict.update()
method updates the dictionary using key-value pairs from the provided values.
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } my_dict.update( {'name': '迹忆客', 'site': 'jiyik.com' } ) # ????️ {'name': '迹忆客', 'site': 'jiyik.com', 'id': 1, 'topic': 'Python'} print(my_dict)
We use the dict.update
method to replace values in the dictionary.
dict.update
method updates the dictionary using the key-value pairs from the supplied values.
This method overwrites the existing keys of the dictionary and returns None.
dict.update()
The method can be called with another dictionary or iterable of key-value pairs (for example, a list with 2 elements per tuple).
We can also pass keyword arguments to the dict.update()
method.
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } my_dict.update( [ ('name', '迹忆客'), ('site', 'jiyik.com') ] ) # ????️ {'name': '迹忆客', 'site': 'jiyik.com', 'id': 1, 'topic': 'Python'} print(my_dict)
Alternatively, we can use the dictionary unpacking **
operator.
To replace values in the dictionary:
Use dictionary unpacking operator unpacks key-value pairs into a new dictionary.
Specify the key with the updated value.
The new value will overwrite the value of the existing key.
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } my_dict = { **my_dict, 'name': '迹忆客', 'site': 'jiyik.com' } # ????️ {'name': '迹忆客', 'site': 'jiyik.com', 'id': 1, 'topic': 'Python'} print(my_dict)
We use the dictionary unpacking **
operator to unpack the key-value pairs of the dictionary into a new dictionary.
Name and site keys overwrite the value of an existing key with the same name.
Alternatively, we can use a for
loop.
To replace values in a dictionary:
Use a for loop to iterate over the items of the dictionary.
Check whether each value should be updated.
Replace matching value.
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } for key, value in my_dict.items(): if value == 'default': if key == 'name': my_dict[key] = '迹忆客' elif key == 'site': my_dict[key] = 'jiyik.com' # ????️ {'name': '迹忆客', 'site': 'jiyik.com', 'id': 1, 'topic': 'Python'} print(my_dict)
dict.items
Method returns a new view of dictionary items ((key, value) pairs).
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } # ????️ dict_items([('name', 'default'), ('site', 'default'), ('id', 1), ('topic', 'Python')]) print(my_dict.items())
In each iteration we check if the current value should be replaced and replace the matching value.
We can also use dictionary merge operator to replace values in dictionary.
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } my_dict = my_dict | { 'name': '迹忆客', 'site': 'jiyik.com' } # {'name': '迹忆客', 'site': 'jiyik.com', # 'id': 1, 'topic': 'Python'} print(my_dict)
Dictionary merging |
operator is available starting with Python version 3.9.
We can check the Python version by running the following command.
$ python --version
Dictionary merging |
operator creates a new dictionary.
This is also a dictionary update |=
operator for assignment.
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } my_dict |= { 'name': '迹忆客', 'site': 'jiyik.com' } # {'name': '迹忆客', 'site': 'jiyik.com', # 'id': 1, 'topic': 'Python'} print(my_dict)
Make sure our Python version is 3.9 or higher to be able to run the code examples.
We can also use a for
loop to replace values in a dictionary based on another dictionary.
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } another_dict = { 'name': '迹忆客', 'site': 'jiyik.com' } for key, value in another_dict.items(): my_dict[key] = value # ????️ {'name': '迹忆客', 'site': 'jiyik.com', # 'id': 1, 'topic': 'Python'} print(my_dict)
We use a for
loop to iterate over the items of the second dictionary.
In each iteration, we replace the key-value pairs of the first dictionary.
We can also check if the key exists in the first dictionary.
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } another_dict = { 'name': '迹忆客', 'site': 'jiyik.com', 'abc': 'xyz', 'one': 'two', } for key, value in another_dict.items(): if key in my_dict: my_dict[key] = value # ????️ {'name': '迹忆客', 'site': 'jiyik.com', # 'id': 1, 'topic': 'Python'} print(my_dict)
In each iteration, we use the in
operator to check if the current key is contained in the dictionary.
Keys will only be replaced if they exist in the first dictionary.
We can also use dictionary comprehension to replace values in the dictionary.
my_dict = { 'name': 'default', 'site': 'default', 'id': 1, 'topic': 'Python' } another_dict = { 'name': '迹忆客', 'site': 'jiyik.com', 'abc': 'xyz', 'one': 'two', } my_dict = { key: another_dict.get(key, value) for key, value in my_dict.items() } # {'name': '迹忆客', 'site': 'jiyik.com', # 'id': 1, 'topic': 'Python'} print(my_dict)
We use dictionary comprehensions to iterate over the items of the dictionary.
Dictionary comprehensions are very similar to list comprehensions.
They perform some operation on each key-value pair in the dictionary, or select a subset of key-value pairs that meet a condition.
In each iteration, we use the dict.get()
method to get the value of the key in the second dictionary.
We specify the current value as a fallback in case the key does not exist in the second dictionary.
The dict.get
method returns the value of the given key if the key is in the dictionary, otherwise it returns the default value.
This method takes the following 2 parameters:
key The key for which a value is to be returned
default If the provided key does not exist in the dictionary, return the default value (optional)
another_dict = { 'name': '迹忆客', 'site': 'jiyik.com', 'abc': 'xyz', 'one': 'two', } print(another_dict.get('id')) # ????️ None print(another_dict.get('topic')) # ????️ None print(another_dict.get('name')) # ????️ 迹忆客
If the value of the default parameter is not provided, the default is None, so the get()
method never raises KeyError
.
The above is the detailed content of How to modify dictionary values in Python. For more information, please follow other related articles on the PHP Chinese website!