#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. Отлично, это ответ, который я искал. Спасибо, Эйб!