Я хочу выбрать несколько ключей из существующего списка словаря, а также добавить несколько других ключей, посмотрев на другую карту.
Основной список выглядит следующим образом
result=[{'key1':123,'key2':'prod','key3':'abc','key4':'cde'},{'key1':123,'key2':'prod','key3':'def','key4':'qrs'},{'key1':321,'key2':'sale','key3':'dssd','key4':'cfde'}]
Ключи, необходимые в новом списке следующим образом, key5
и key6
являются новыми ключами, которые необходимо добавить
wantedkeys=['key1','key3','key5','key6']
Словарь Используется для добавления новых значений ключей
keyMap={(123, 'key5'): 'abc', (123, 'key6'): 'pqr'}
I 'Я могу выбрать key1
и key3
, чтобы получить вывод, используя приведенный ниже синтаксис.
new_list = [{ key: record[key] for key in wantedkeys } for record in result if record['key2']=='prod']
, но, расширяя его, чтобы добавить дополнительные ключи, я получаю синтаксическую ошибку.
new_list = [{ key : keyMap[record['key1'],key] if key in ['key5','key6'] else key: record[key] for key in wantedkeys } for record in result if record['key2']=='Prod']
Я знаю, что это можно сделать путем циклического перемещения по списку, но есть ли более питонный способ добиться этого с лучшей производительностью, поскольку в моем списке будет несколько миллионов записей, любая помощь будет принята с благодарностью