Объединение значений Python

Доброго времени суток!

Есть список словарей:

local = [{'Client': [70, 242],
  'description': 'name123',
  'userNotes': 'snq'},{'Client': [70, 169],
  'description': 'name234',
  'userNotes': 'e123123'}]
local_2 = [{'descriptionTag': 'Test1', 'Client': 169},
 {'descriptionTag': 'Test2', 'Client': 242},
 {'descriptionTag': 'Test3', 'Client': 70}]

Подскажите, пожалуйста, как правильно можно соединить значение 'Client' ? В первом словаре есть 'Client' и список чисел, а во втором есть расшифровка этих чисел.

В итоге должно получиться так:

local = [{'Client': ['Test3', 'Test2'],
      'description': 'name123',
      'userNotes': 'snq'},
         {'Client': ['Test3', Test1],
      'description': 'name234',
      'userNotes': 'e123123'}]
  • нужно условие если не нашел ключ во втором поставил ' No key ' Недавно начал изучать питон, не знаю как правильно еще описать.

Ответы (1 шт):

Автор решения: AivanF.

Начните с толковых наименований переменных, а то в дебрях этих local'ов легко запутаться (: Переименовал, не уверен, что в соответствии с вашей задаче, но работать с кодом стало куда проще. А для решения подобных задач часто бывает полезным создавать промежуточные структуры данных и функции, которые упростят последующий алгоритм, в данном случае это client_to_tag и update_user_clients:

users = [{
    'Client': [70, 242],
    'description': 'name123',
    'userNotes': 'snq'
}, {
    'Client': [70, 169],
    'description': 'name234',
    'userNotes': 'e123123'
}]
tags = [
    {'descriptionTag': 'Test1', 'Client': 169},
    {'descriptionTag': 'Test2', 'Client': 242},
    {'descriptionTag': 'Test3', 'Client': 70},
]

client_to_tag = {
    d['Client']: d['descriptionTag']
    for d in tags
}

def update_user_clients(user):
    user = {**user}
    user['Client'] = [
        client_to_tag[client]
        for client in user['Client']
    ]
    return user

updated_users = [
    update_user_clients(user)
    for user in users
]
print(updated_users)
→ Ссылка