Home > Software design >  How to change inside dictionary in Python
How to change inside dictionary in Python

Time:09-17

I have data like this :

[{'a':1 , 'b': 1 , 'c':{'ca' : 11 , 'cb':21}},
 {'a':2 , 'b': 2 , 'c':{'ca' : 12 , 'cb':22}},
 {'a':3 , 'b': 3 , 'c':{'ca' : 13 , 'cb':23}},
 {'a':4 , 'b': 4 , 'c':{'ca' : 14 , 'cb':24}},
]

I want to change the dictionary inside a dictionary data in Python.
For example, I want to change 'ca' where a='3' to 33. I want to change data like this :

[{'a':1 , 'b': 1 , 'c':{'ca' : 11 , 'cb':21}},
 {'a':2 , 'b': 2 , 'c':{'ca' : 12 , 'cb':22}},
 {'a':3 , 'b': 3 , 'c':{'ca' : 33 , 'cb':23}},
 {'a':4 , 'b': 4 , 'c':{'ca' : 14 , 'cb':24}},
]

CodePudding user response:

Try this:

lst_dct = [
 {'a':1 , 'b': 1 , 'c':{'ca' : 11 , 'cb':21}},
 {'a':2 , 'b': 2 , 'c':{'ca' : 12 , 'cb':22}},
 {'a':3 , 'b': 3 , 'c':{'ca' : 13 , 'cb':23}},
 {'a':4 , 'b': 4 , 'c':{'ca' : 14 , 'cb':24}},
]

for dct in lst_dct :
    if dct['a'] == 3:
        dct['c']['ca'] = 33
        
print(lst_dct)

Output:

[{'a': 1, 'b': 1, 'c': {'ca': 11, 'cb': 21}},
 {'a': 2, 'b': 2, 'c': {'ca': 12, 'cb': 22}},
 {'a': 3, 'b': 3, 'c': {'ca': 33, 'cb': 23}},
 {'a': 4, 'b': 4, 'c': {'ca': 14, 'cb': 24}}]
  • Related