Обновление значений внутри списка в python

ItemList = [
    {'name': 'item', 'item_code': '473', 'price': 0},
    {'name': 'item', 'item_code': '510', 'price': 0},
    {'name': 'item', 'item_code': '384', 'price': 0},

]

data_1 = '510'
data_2 = 200

def update_item(data_1, data_2):
    for a in ItemList:
        if a['item_code'] == data_1:
            update_price = append(a['price'].data_2)
            return True

Я хочу обновить цену с помощью функции update_item. Сбой происходит при update_price = append(a['price'].data_2)

Вы можете присвоить значение словарю, с помощью:

def update_item(data_1, data_2):
    for a in ItemList:
        if a['item_code'] == data_1:
            a['price'] = data_2
            return

для решения этой задачи мы также можем использовать метод dict update():

def update_item(data_1, data_2):
    for sub in ItemList:
        if data_1 in sub.values():
            sub.update({'price': data_2})
Вернуться на верх