Python - фильтрация словарей с упорядоченными значениями
Учитывая список словарей, задача состоит в том, чтобы написать программу на Python для фильтрации словарей со значениями в порядке возрастания, т. Е. С сортировкой.
Примеры:
Input : test_list = [{‘gfg’ : 2, ‘is’ : 8, ‘good’ : 10}, {‘gfg’ : 1, ‘for’ : 10, ‘geeks’ : 9}, {‘love’ : 3, ‘gfg’ : 4}]
Output : [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘love’: 3, ‘gfg’: 4}]
Explanation : 2, 8, 10 are in increasing order.
Input : test_list = [{‘gfg’ : 2, ‘is’ : 8, ‘good’ : 10}, {‘gfg’ : 1, ‘for’ : 10, ‘geeks’ : 9}, {‘love’ : 4, ‘gfg’ : 3}]
Output : [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}]
Explanation : 2, 8, 10 are in increasing order.
Метод №1: Использование sorted () + values () + понимания списка
In this, we perform task of sorting using sorted() and extract values using values(), list comprehension is used to perform iteration of all the dictionaries.
Python3
# Python3 code to demonstrate working of # Filter dictionaries with ordered values # Using sorted() + values() + list comprehension # initializing list test_list = [{ "gfg" : 2 , "is" : 8 , "good" : 10 }, { "gfg" : 1 , "for" : 10 , "geeks" : 9 }, { "love" : 3 , "gfg" : 4 }] # printing original list print ( "The original list is : " + str (test_list)) # sorted to check with ordered values # values() extracting dictionary values res = [sub for sub in test_list if sorted ( list (sub.values())) = = list (sub.values())] # printing result print ( "The filtered Dictionaries : " + str (res)) |
Выход:
The original list is : [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 3, ‘gfg’: 4}]
The filtered Dictionaries : [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘love’: 3, ‘gfg’: 4}]
Метод # 2: использование filter () + lambda + sorted ()
In this, we perform task of filtering using filter(), and lambda function is used to perform task of injecting functionality necessary for checking increasing values.
Python3
# Python3 code to demonstrate working of # Filter dictionaries with ordered values # Using filter() + lambda + sorted() # initializing list test_list = [{ "gfg" : 2 , "is" : 8 , "good" : 10 }, { "gfg" : 1 , "for" : 10 , "geeks" : 9 }, { "love" : 3 , "gfg" : 4 }] # printing original list print ( "The original list is : " + str (test_list)) # sorted to check with ordered values # values() extracting dictionary values # filter() and lambda function used to filter res = list ( filter ( lambda sub: sorted ( list (sub.values())) = = list (sub.values()), test_list)) # printing result print ( "The filtered Dictionaries : " + str (res)) |
Выход:
The original list is : [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘gfg’: 1, ‘for’: 10, ‘geeks’: 9}, {‘love’: 3, ‘gfg’: 4}]
The filtered Dictionaries : [{‘gfg’: 2, ‘is’: 8, ‘good’: 10}, {‘love’: 3, ‘gfg’: 4}]
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.