Sobes.tech
Junior — Senior
66

Определение отклонений сумм по клиентам

Компании, где спрашивали:

СБЕРСБЕР
Условие задачи

Имеются два упорядоченных массива словарей list1 и list2. Каждый элемент хранит идентификатор клиента (client_id) и его финансовую величину (sum). Нужно сопоставить записи из обоих массивов по полю client_id, вычислить абсолютную разницу сумм для каждого клиента и подсчитать суммарное значение всех отклонений. После этого требуется сформировать список из десяти клиентов, у которых разница максимальна по модулю.

list1 = [
    {'client_id': 1, 'sum': 10},
    {'client_id': 2, 'sum': 20},
    {'client_id': 3, 'sum': 40},
]

list2 = [
    {'client_id': 1, 'sum': 10},
    {'client_id': 2, 'sum': 25},
    {'client_id': 3, 'sum': 30},
]

# Ожидаемый результат:
# общая сумма отклонений: 5 + 40 + 30 = 75
# top10:
 top10 = [
    {'client_id': 3, 'diff': 40},
    {'client_id': 2, 'diff': 5},
    {'client_id': 1, 'diff': 0},
]
list1 = [
    {'client_id': 1, 'sum': 10},
    {'client_id': 2, 'sum': 20},
    {'client_id': 3, 'sum': 40},
]

list2 = [
    {'client_id': 1, 'sum': 10},
    {'client_id': 2, 'sum': 25},
    {'client_id': 3, 'sum': 30},
]