Home  >  Article  >  Backend Development  >  How to modify dictionary values ​​in Python

How to modify dictionary values ​​in Python

PHPz
PHPzforward
2023-04-23 11:55:167696browse

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).

Passing keyword arguments to the dict.update() method

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.

Use dictionary unpacking to replace values ​​in the dictionary

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.

Use a for loop to replace values ​​in a dictionary

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.

Use dictionary merge operator to replace values ​​in dictionary

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.

Replace values ​​in a dictionary based on another dictionary

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.

Use dictionary comprehension to replace values ​​in the 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!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete