Как фильтровать по словарю с помощью кратных ключей

#dictionary #filter #key

#словарь #Фильтр #Клавиша

Вопрос:

У меня есть словарь с двойным ключом, который выглядит следующим образом:

{(‘Year’, ‘prix’): 130546.87449454193,

(‘Год’, ‘отдел’): 11591.47409694357,

(‘Year’, ‘annee’): 34.28496633835407,

(‘Год’, ‘километраж’): 414330.13854019763,

(‘price’, ‘prix’): 324162.66684322944,

(‘цена’, ‘отдел’): 466290.81724082783,

(‘price’, ‘annee’): 454736.63137143303,

(‘цена’, ‘километраж’): 117557.09720242623}

Я хочу фильтровать только по первой части моего ключа, которая является кортежем. Другими словами, я хочу получить этот результат, если я укажу в своем коде «Год»:

{(‘Year’, ‘prix’): 130546.87449454193,

(‘Год’, ‘отдел’): 11591.47409694357,

(‘Year’, ‘annee’): 34.28496633835407,

(‘Год’, ‘километраж’): 414330.13854019763}

Я достиг своего результата, но только после нескольких строк кода. Мне интересно, есть ли способ сделать это плавно.

Заранее спасибо

Ответ №1:

Вы можете использовать понимание dict:

 # Suppose you have your dict stored in dct
# The line below returns a filtered dictionary, including keys with first tuple element 'Year'
{key: dct[key] for key in dct.keys() if key[0]=='Year'} 
 

Комментарии:

1. Отлично, это ответ, который я искал. Спасибо, Эйб!