Find the Last Matching Value

PythonPythonBeginner
Practice Now

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

Introduction

In Python, we can use list comprehension and next() to find the value of the last element in a list that satisfies a given testing function. This challenge will test your ability to use these tools to solve a problem.


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/AdvancedTopicsGroup(["`Advanced Topics`"]) python/BasicConceptsGroup -.-> python/comments("`Comments`") python/ControlFlowGroup -.-> python/conditional_statements("`Conditional Statements`") python/ControlFlowGroup -.-> python/for_loops("`For Loops`") python/DataStructuresGroup -.-> python/lists("`Lists`") python/DataStructuresGroup -.-> python/tuples("`Tuples`") python/FunctionsGroup -.-> python/function_definition("`Function Definition`") python/FunctionsGroup -.-> python/lambda_functions("`Lambda Functions`") python/AdvancedTopicsGroup -.-> python/iterators("`Iterators`") python/FunctionsGroup -.-> python/build_in_functions("`Build-in Functions`") subgraph Lab Skills python/comments -.-> lab-13638{{"`Find the Last Matching Value`"}} python/conditional_statements -.-> lab-13638{{"`Find the Last Matching Value`"}} python/for_loops -.-> lab-13638{{"`Find the Last Matching Value`"}} python/lists -.-> lab-13638{{"`Find the Last Matching Value`"}} python/tuples -.-> lab-13638{{"`Find the Last Matching Value`"}} python/function_definition -.-> lab-13638{{"`Find the Last Matching Value`"}} python/lambda_functions -.-> lab-13638{{"`Find the Last Matching Value`"}} python/iterators -.-> lab-13638{{"`Find the Last Matching Value`"}} python/build_in_functions -.-> lab-13638{{"`Find the Last Matching Value`"}} end

Find the Last Matching Value

Write a function find_last(lst, fn) that takes a list lst and a testing function fn as arguments. The function should return the value of the last element in lst for which fn returns True. If no element satisfies the testing function, the function should return None.

To solve this problem, you should use a list comprehension and next() to iterate through the list in reverse order and return the last element that satisfies the testing function.

def find_last(lst, fn):
  return next(x for x in lst[::-1] if fn(x))
find_last([1, 2, 3, 4], lambda n: n % 2 == 1) ## 3

Summary

In this challenge, you learned how to use list comprehension and next() to find the value of the last element in a list that satisfies a given testing function. This is a useful tool for filtering and processing data in Python.

Other Python Tutorials you may like