Saturday, November 22, 2025
HomeLanguagesPython program to extract dictionary items for custom values

Python program to extract dictionary items for custom values

Given a dictionary, extract all the items that match given values in the list

Example:

Input : test_dict = {“Gfg” : 3, “is” : 5, “for” : 8, “Geeks” : 10, “Best” : 16 }, sub_list = [5, 4, 10, 20, 16, 8] 
Output : {‘is’: 5, ‘Geeks’: 10, ‘Best’: 16, “for” : 8} 
Explanation : All values matching list values extracted along with keys.

Input : test_dict = {“Gfg” : 3, “is” : 5, “for” : 8, “Geeks” : 10, “Best” : 16 }, sub_list = [5, 4, 10] 
Output : {‘is’: 5, ‘Geeks’: 10} 
Explanation : All values matching list values extracted along with keys. 
 

Method 1: Using a loop

Use of a ‘for loop’ is one of the ways in which this task can be performed. In this, we iterate for all the keys and check if the value is present in a custom list, if yes, then it’s returned.

Python3




# initializing dictionary
test_dict = {"Gfg": 3, "is": 5, "for": 8,
             "Geeks": 10, "Best": 16}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# initializing list
sub_list = [5, 4, 10, 20, 16]
 
# Using loop to perform iteration
res = dict()
 
for key in test_dict:
   
    if test_dict[key] in sub_list:
        res[key] = test_dict[key]
 
# printing result
print("Extracted items : " + str(res))


Output:

The original dictionary is : {‘Gfg’: 3, ‘is’: 5, ‘for’: 8, ‘Geeks’: 10, ‘Best’: 16} 
Extracted items : {‘is’: 5, ‘Geeks’: 10, ‘Best’: 16}

Method 2: Using dictionary comprehension

This is a one-liner with the help of which this task can be performed. In this, we iterate for all keys using dictionary comprehension in one-liner approach.

Python3




# initializing dictionary
test_dict = {"Gfg": 3, "is": 5, "for": 8,
             "Geeks": 10, "Best": 16}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# initializing list
sub_list = [5, 4, 10, 20, 16]
 
# dictionary comprehension to compile logic in one dictionary
# in operator used to check value existence
res = {key: val for key, val in test_dict.items() if val in sub_list}
 
# printing result
print("Extracted items : " + str(res))


Output:

The original dictionary is : {‘Gfg’: 3, ‘is’: 5, ‘for’: 8, ‘Geeks’: 10, ‘Best’: 16} 
Extracted items : {‘is’: 5, ‘Geeks’: 10, ‘Best’: 16}

Method 3: Using set intersection

Approach

we can convert both the dictionary values and the given list into sets, and then perform a set intersection operation to get the common values. Finally, we can create a new dictionary containing the items with the common values.

Algorithm

1. Convert the dictionary values into a set using the set() function.
2. Convert the given list into a set using the set() function.
3. Perform a set intersection operation on the two sets using the & operator.
4. Create a new dictionary containing the items with the common values.
5. Return the new dictionary.

Python3




def extract_items(test_dict, sub_list):
    dict_values_set = set(test_dict.values())
    sub_list_set = set(sub_list)
    common_values = dict_values_set & sub_list_set
    filtered_dict = {k: v for k, v in test_dict.items() if v in common_values}
    return filtered_dict
test_dict = {"Gfg": 3, "is": 5, "for": 8,
             "Geeks": 10, "Best": 16}
sub_list = [5, 4, 10, 20, 16]
print(extract_items(test_dict, sub_list))


Output

{'is': 5, 'Geeks': 10, 'Best': 16}

Time Complexity: O(N), where N is the number of items in the dictionary.
Space Complexity: O(N), where N is the number of items in the dictionary.

Method 4 : using the filter() function along with a lambda function. 

The steps involved in this approach are as follows:

Initialize the dictionary test_dict and list sub_list.
Use the filter() function along with a lambda function to filter the items from the dictionary test_dict based on whether the value is present in the sub_list or not.
Convert the filtered items into a dictionary using the dict() constructor.
Print the extracted items.

Python3




# initializing dictionary
test_dict = {"Gfg": 3, "is": 5, "for": 8,
             "Geeks": 10, "Best": 16}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# initializing list
sub_list = [5, 4, 10, 20, 16]
 
# Using filter() function to extract items
res = dict(filter(lambda item: item[1] in sub_list, test_dict.items()))
 
# printing result
print("Extracted items : " + str(res))


Output

The original dictionary is : {'Gfg': 3, 'is': 5, 'for': 8, 'Geeks': 10, 'Best': 16}
Extracted items : {'is': 5, 'Geeks': 10, 'Best': 16}

The time complexity of this approach is O(n), where n is the number of items in the dictionary test_dict.

 The auxiliary space complexity is also O(n), as a new dictionary is created to store the filtered items.

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32407 POSTS0 COMMENTS
Milvus
97 POSTS0 COMMENTS
Nango Kala
6784 POSTS0 COMMENTS
Nicole Veronica
11931 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11999 POSTS0 COMMENTS
Shaida Kate Naidoo
6907 POSTS0 COMMENTS
Ted Musemwa
7168 POSTS0 COMMENTS
Thapelo Manthata
6863 POSTS0 COMMENTS
Umr Jansen
6848 POSTS0 COMMENTS