 Open in App
Not now

# Python – Extract Key’s Value, if Key Present in List and Dictionary

• Last Updated : 16 Mar, 2023

Given a list, dictionary, and a Key K, print the value of K from the dictionary if the key is present in both, the list and the dictionary.

```Input : test_list = ["Gfg", "is", "Good", "for", "Geeks"],
test_dict = {"Gfg" : 5, "Best" : 6}, K = "Gfg"
Output : 5
Explanation : "Gfg" is present in list and has value 5 in dictionary.

Input : test_list = ["Good", "for", "Geeks"],
test_dict = {"Gfg" : 5, "Best" : 6}, K = "Gfg"
Output : None
Explanation : "Gfg" not present in List.```

Method #1 : Using all() + generator expression

The combination of the above functions offers one of the ways in which this problem can be solved. In this, we use all() to check for occurrence in both dictionary and list. If the result is true value is extracted from to result.

## Python3

 `# Python3 code to demonstrate working of``# Extract Key's Value, if Key Present in List and Dictionary``# Using all() + list comprehension` `# initializing list``test_list ``=` `[``"Gfg"``, ``"is"``, ``"Good"``, ``"for"``, ``"Geeks"``]` `# initializing Dictionary``test_dict ``=` `{``"Gfg"` `: ``2``, ``"is"` `: ``4``, ``"Best"` `: ``6``}` `# initializing K``K ``=` `"Gfg"` `# printing original list and Dictionary``print``(``"The original list : "` `+` `str``(test_list))``print``(``"The original Dictionary : "` `+` `str``(test_dict))` `# using all() to check for occurrence in list and dict``# encapsulating list and dictionary keys in list``res ``=` `None``if` `all``(K ``in` `sub ``for` `sub ``in` `[test_dict, test_list]):``    ``res ``=` `test_dict[K]` `# printing result``print``(``"Extracted Value : "` `+` `str``(res))`

Output

```The original list : ['Gfg', 'is', 'Good', 'for', 'Geeks']
The original Dictionary : {'Gfg': 2, 'is': 4, 'Best': 6}
Extracted Value : 2```

Time complexity: O(n), where n is the total number of elements in the test_list. This is because, in the worst case, each element of the list needs to be checked for its presence in both the list and the dictionary, resulting in a time complexity of O(n).
Auxiliary space: O(1), as it only requires a constant amount of additional memory to store the result and temporary variables.

Method #2 : Using set() + intersection()

This is another way to check for the key’s presence in both containers. In this, we compute the intersection of all values of list and dict keys and test for the Key’s occurrence in that.

## Python3

 `# Python3 code to demonstrate working of``# Extract Key's Value, if Key Present in List and Dictionary``# Using set() + intersection()` `# initializing list``test_list ``=` `[``"Gfg"``, ``"is"``, ``"Good"``, ``"for"``, ``"Geeks"``]` `# initializing Dictionary``test_dict ``=` `{``"Gfg"` `: ``2``, ``"is"` `: ``4``, ``"Best"` `: ``6``}` `# initializing K``K ``=` `"Gfg"` `# printing original list and Dictionary``print``(``"The original list : "` `+` `str``(test_list))``print``(``"The original Dictionary : "` `+` `str``(test_dict))` `# conversion of lists to set and intersection with keys``# using intersection``res ``=` `None``if` `K ``in` `set``(test_list).intersection(test_dict):``    ``res ``=` `test_dict[K]` `# printing result``print``(``"Extracted Value : "` `+` `str``(res))`

Output

```The original list : ['Gfg', 'is', 'Good', 'for', 'Geeks']
The original Dictionary : {'Gfg': 2, 'is': 4, 'Best': 6}
Extracted Value : 2```

Time complexity: O(n), where n is the length of the list.
Auxiliary space: O(m), where m is the number of unique keys in the dictionary that match the elements in the list.

Method #3: Using in operator

## Python3

 `# Python3 code to demonstrate working of``# Extract Key's Value, if Key Present in List and Dictionary` `# initializing list``test_list ``=` `[``"Gfg"``, ``"is"``, ``"Good"``, ``"for"``, ``"Geeks"``]` `# initializing Dictionary``test_dict ``=` `{``"Gfg"` `: ``2``, ``"is"` `: ``4``, ``"Best"` `: ``6``}` `# initializing K``K ``=` `"Gfg"` `# printing original list and Dictionary``print``(``"The original list : "` `+` `str``(test_list))``print``(``"The original Dictionary : "` `+` `str``(test_dict))` `if` `K ``in` `test_dict.keys() ``and` `K ``in` `test_list:``    ``res``=``test_dict[K]` `# printing result``print``(``"Extracted Value : "` `+` `str``(res))`

Output

```The original list : ['Gfg', 'is', 'Good', 'for', 'Geeks']
The original Dictionary : {'Gfg': 2, 'is': 4, 'Best': 6}
Extracted Value : 2```

Time Complexity: O(n)
Auxiliary Space: O(1)

Method 4: Using operator.countOf() method

## Python3

 `# Python3 code to demonstrate working of``# Extract Key's Value, if Key Present in List and Dictionary``import` `operator as op``# initializing list``test_list ``=` `[``"Gfg"``, ``"is"``, ``"Good"``, ``"for"``, ``"Geeks"``]` `# initializing Dictionary``test_dict ``=` `{``"Gfg"``: ``2``, ``"is"``: ``4``, ``"Best"``: ``6``}` `# initializing K``K ``=` `"Gfg"` `# printing original list and Dictionary``print``(``"The original list : "` `+` `str``(test_list))``print``(``"The original Dictionary : "` `+` `str``(test_dict))` `if` `op.countOf(test_dict.keys(), K) > ``0` `and` `op.countOf(test_list, K) > ``0``:``    ``res ``=` `test_dict[K]` `# printing result``print``(``"Extracted Value : "` `+` `str``(res))`

Output

```The original list : ['Gfg', 'is', 'Good', 'for', 'Geeks']
The original Dictionary : {'Gfg': 2, 'is': 4, 'Best': 6}
Extracted Value : 2```

Time Complexity: O(N)
Auxiliary Space: O(1)

Method 5: Using any() + dictionary.get() method

## Python3

 `# Python3 code to demonstrate working of``# Extract Key's Value, if Key Present in List and Dictionary``# Using any() + dictionary.get() method` `# initializing list``test_list ``=` `[``"Gfg"``, ``"is"``, ``"Good"``, ``"for"``, ``"Geeks"``]` `# initializing Dictionary``test_dict ``=` `{``"Gfg"``: ``2``, ``"is"``: ``4``, ``"Best"``: ``6``}` `# initializing K``K ``=` `"Gfg"` `# printing original list and Dictionary``print``(``"The original list : "` `+` `str``(test_list))``print``(``"The original Dictionary : "` `+` `str``(test_dict))` `# using any() to check for occurrence in list and dict``# accessing value of key using dictionary.get() method``res ``=` `None``if` `K ``in` `test_list ``and` `K ``in` `test_dict:``    ``res ``=` `test_dict.get(K)` `# printing result``print``(``"Extracted Value : "` `+` `str``(res))`

Output

```The original list : ['Gfg', 'is', 'Good', 'for', 'Geeks']
The original Dictionary : {'Gfg': 2, 'is': 4, 'Best': 6}
Extracted Value : 2```

Time Complexity: O(N)
Auxiliary Space: O(1)

Method #6: Using try-except block to handle KeyErrors

Use a try-except block to handle the KeyError that may occur if K is not present in test_dict. First, check if K is present in both test_list and test_dict.keys(). If yes, extract the value of K from test_dict. If no, set the result to None. If a KeyError occurs, handle it by setting the result to None. Finally, print the result.

## Python3

 `test_list ``=` `[``"Gfg"``, ``"is"``, ``"Good"``, ``"for"``, ``"Geeks"``]``test_dict ``=` `{``"Gfg"` `: ``2``, ``"is"` `: ``4``, ``"Best"` `: ``6``}``K ``=` `"Gfg"` `try``:``    ``# check if K is present in both test_list and test_dict keys``    ``if` `K ``in` `test_list ``and` `K ``in` `test_dict.keys():``        ``# if yes, extract value of K from test_dict``        ``res ``=` `test_dict[K]``    ``else``:``        ``# if no, set result to None``        ``res ``=` `None``except` `KeyError:``    ``# handle KeyError exception``    ``res ``=` `None``    ` `# print result``print``(``"Extracted Value : "` `+` `str``(res))`

Output

`Extracted Value : 2`

Time complexity: O(n), where n is the length of the test_list. This is because we check if K is present in both test_list and test_dict.keys(), which takes O(n) time in the worst case.
Auxiliary space: O(1), because we use a constant amount of extra space to store the variables test_list, test_dict, K, and res, and we don’t create any additional data structures in the code.

Method #7: Using try-except block with .get() method

This method involves using a try-except block to check if the key exists in the dictionary and retrieve its value using the .get() method.

Follow the below steps to implement the above idea:

• Initialize the list, dictionary, and key, same as in the original code.
• Use a try-except block to handle the KeyError exception that occurs if the key is not found in the dictionary.
• Inside the try block, retrieve the value of the key using the .get() method on the dictionary. If the key is not found, .get() will return None by default.
• If the key is found in both the list and dictionary, return the value of the key. If not, return None.

Below is the implementation of the above approach:

## Python3

 `# Python3 code to demonstrate working of``# Extract Key's Value, if Key Present in List and Dictionary``# Using try-except block with .get() method` `# initializing list``test_list ``=` `[``"Gfg"``, ``"is"``, ``"Good"``, ``"for"``, ``"Geeks"``]` `# initializing Dictionary``test_dict ``=` `{``"Gfg"` `: ``2``, ``"is"` `: ``4``, ``"Best"` `: ``6``}` `# initializing K``K ``=` `"Gfg"` `# printing original list and Dictionary``print``(``"The original list : "` `+` `str``(test_list))``print``(``"The original Dictionary : "` `+` `str``(test_dict))` `# using try-except block with .get() method``res ``=` `None``try``:``    ``if` `K ``in` `test_list ``and` `K ``in` `test_dict:``        ``res ``=` `test_dict.get(K)``except` `KeyError:``    ``pass` `# printing result``print``(``"Extracted Value : "` `+` `str``(res))`

Output

```The original list : ['Gfg', 'is', 'Good', 'for', 'Geeks']
The original Dictionary : {'Gfg': 2, 'is': 4, 'Best': 6}
Extracted Value : 2```

Time complexity: O(n), Where n is the length of test_list.
Auxiliary space: O(1) for storing the result and constant extra space for the try-except block.

Method #8: Using a for loop to iterate through the list and dictionary

Step-by-step approach:

• Initialize the list, dictionary, and key as given in the problem statement:
• Use a for loop to iterate through the list and dictionary:
• Checks each item in the list. If an item is equal to the key, it uses the get() method to retrieve the corresponding value from the dictionary.
• If the key is not found, res is set to None. The loop stops as soon as a matching item is found.
• Print the extracted value:

## Python

 `test_list ``=` `[``"Gfg"``, ``"is"``, ``"Good"``, ``"for"``, ``"Geeks"``]``test_dict ``=` `{``"Gfg"` `: ``2``, ``"is"` `: ``4``, ``"Best"` `: ``6``}``K ``=` `"Gfg"` `# Method 9: Using a for loop to iterate through the list and dictionary``res ``=` `None``for` `item ``in` `test_list:``    ``if` `item ``=``=` `K:``        ``res ``=` `test_dict.get(K)``        ``break` `print``(``"Method 9: Extracted Value : "` `+` `str``(res))`

Output

`Method 9: Extracted Value : 2`

Time complexity: O(n), where n is the length of the list
Auxiliary space: O(1)

My Personal Notes arrow_drop_up