List Intersection Based on Function | Challenge

PythonPythonBeginner
Practice Now

This tutorial is from open-source community. Access the source code

Introduction

In Python, we can find the intersection of two lists using the set() and intersection() methods. However, what if we want to find the intersection based on a specific function applied to each element in both lists? In this challenge, you will create a function that takes in two lists and a function, and returns a list of elements that exist in both lists, after applying the provided function to each list element of both.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("`Python`")) -.-> python/BasicConceptsGroup(["`Basic Concepts`"]) python(("`Python`")) -.-> python/ControlFlowGroup(["`Control Flow`"]) python(("`Python`")) -.-> python/DataStructuresGroup(["`Data Structures`"]) python(("`Python`")) -.-> python/FunctionsGroup(["`Functions`"]) python(("`Python`")) -.-> python/PythonStandardLibraryGroup(["`Python Standard Library`"]) python/BasicConceptsGroup -.-> python/comments("`Comments`") python/BasicConceptsGroup -.-> python/variables_data_types("`Variables and Data Types`") python/ControlFlowGroup -.-> python/conditional_statements("`Conditional Statements`") python/ControlFlowGroup -.-> python/for_loops("`For Loops`") python/ControlFlowGroup -.-> python/list_comprehensions("`List Comprehensions`") python/DataStructuresGroup -.-> python/lists("`Lists`") python/DataStructuresGroup -.-> python/tuples("`Tuples`") python/FunctionsGroup -.-> python/function_definition("`Function Definition`") python/PythonStandardLibraryGroup -.-> python/data_collections("`Data Collections`") python/FunctionsGroup -.-> python/build_in_functions("`Build-in Functions`") subgraph Lab Skills python/comments -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} python/variables_data_types -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} python/conditional_statements -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} python/for_loops -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} python/list_comprehensions -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} python/lists -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} python/tuples -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} python/function_definition -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} python/data_collections -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} python/build_in_functions -.-> lab-13131{{"`List Intersection Based on Function | Challenge`"}} end

List Intersection Based on Function

Problem

Write a function intersection_by(a, b, fn) that takes in two lists a and b, and a function fn. The function should return a list of elements that exist in both lists, after applying the provided function to each list element of both.

Input

  • Two lists a and b (1 <= len(a), len(b) <= 1000)
  • A function fn that takes in one argument and returns a value

Output

  • A list of elements that exist in both lists, after applying the provided function to each list element of both.

Example

intersection_by([2.1, 1.2], [2.3, 3.4], floor) ## [2.1]

Note

In the example above, the function floor() is applied to each element in both lists. The resulting sets are {2, 3} and {2, 1}. The intersection of these sets is {2}, which is then returned as a list.

Summary

In this challenge, you have learned how to find the intersection of two lists based on a specific function applied to each element in both. You have written a function intersection_by(a, b, fn) that takes in two lists and a function, and returns a list of elements that exist in both lists, after applying the provided function to each list element of both.

Other Python Tutorials you may like