Как изменить внутренний словарь в python

у меня есть такие данные :

[{'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}},
]

Я хотел спросить, как изменить словарь внутри диктонарных данных в python, например, я хочу изменить 'ca', где a='3' на 33, поэтому я хочу изменить данные следующим образом :

[{'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}},
]

Попробуйте это:

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)

Выход:

[{'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}}]
Вернуться на верх