Python - фильтрация словарей по значениям в K-ом ключе в списке
Имея список словарей, задача состоит в том, чтобы написать программу Python для фильтрации словарей на основе элементов K-го ключа в списке.
Примеры:
Input : test_list = [{“Gfg” : 3, “is” : 5, “best” : 10},
{“Gfg” : 5, “is” : 1, “best” : 1},
{“Gfg” : 8, “is” : 3, “best” : 9},
{“Gfg” : 9, “is” : 9, “best” : 8},
{“Gfg” : 4, “is” : 10, “best” : 7}], K = “best”, search_list = [1, 9, 8, 4, 5]
Output : [{‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’: 8, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 9, ‘is’: 9, ‘best’: 8}]
Explanation : Dictionaries with “best” as key and values other than 1, 9, 8, 4, 5 are omitted.
Input : test_list = [{“Gfg” : 3, “is” : 5, “best” : 10},
{“Gfg” : 5, “is” : 1, “best” : 1},
{“Gfg” : 8, “is” : 3, “best” : 9}], K = “best”, search_list = [1, 9, 4, 5]
Output : [{‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’: 8, ‘is’: 3, ‘best’: 9}]
Explanation : Dictionaries with “best” as key and values other than 1, 9, 4, 5 are omitted.
Метод # 1: использование цикла + условных операторов
In this, key-value pairs are added to the resultant dictionary after checking for Kth keys values in the list using conditionals, iterated using a loop.
Python3
# Python3 code to demonstrate working of# Filter dictionaries by values in Kth Key in list# Using loop + conditional statements # initializing listtest_list = [{"Gfg": 3, "is": 5, "best": 10}, {"Gfg": 5, "is": 1, "best": 1}, {"Gfg": 8, "is": 3, "best": 9}, {"Gfg": 9, "is": 9, "best": 8}, {"Gfg": 4, "is": 10, "best": 7}] # printing original listprint("The original list is : " + str(test_list)) # initializing search_listsearch_list = [1, 9, 8, 4, 5] # initializing KK = "best" res = []for sub in test_list: # checking if Kth key"s value present in search_list if sub[K] in search_list: res.append(sub) # printing resultprint("Filtered dictionaries : " + str(res)) |
Выход:
The original list is : [{‘Gfg’: 3, ‘is’: 5, ‘best’: 10}, {‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’: 8, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 9, ‘is’: 9, ‘best’: 8}, {‘Gfg’: 4, ‘is’: 10, ‘best’: 7}]
Filtered dictionaries : [{‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’: 8, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 9, ‘is’: 9, ‘best’: 8}]
Метод # 2: использование понимания списка
Similar to the above method, list comprehension is used to provide shorthand to the method used above.
Python3
# Python3 code to demonstrate working of# Filter dictionaries by values in Kth Key in list# Using list comprehension # initializing listtest_list = [{"Gfg": 3, "is": 5, "best": 10}, {"Gfg": 5, "is": 1, "best": 1}, {"Gfg": 8, "is": 3, "best": 9}, {"Gfg": 9, "is": 9, "best": 8}, {"Gfg": 4, "is": 10, "best": 7}, ] # printing original listprint("The original list is : " + str(test_list)) # initializing search_listsearch_list = [1, 9, 8, 4, 5] # initializing KK = "best" # list comprehension as shorthand for solving problemres = [sub for sub in test_list if sub[K] in search_list] # printing resultprint("Filtered dictionaries : " + str(res)) |
Выход:
The original list is : [{‘Gfg’: 3, ‘is’: 5, ‘best’: 10}, {‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’: 8, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 9, ‘is’: 9, ‘best’: 8}, {‘Gfg’: 4, ‘is’: 10, ‘best’: 7}]
Filtered dictionaries : [{‘Gfg’: 5, ‘is’: 1, ‘best’: 1}, {‘Gfg’: 8, ‘is’: 3, ‘best’: 9}, {‘Gfg’: 9, ‘is’: 9, ‘best’: 8}]
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.