Intersection de listes basée sur une fonction

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

En Python, on peut trouver l'intersection de deux listes en utilisant les méthodes set() et intersection(). Cependant, que se passe-t-il si on veut trouver l'intersection en fonction d'une fonction spécifique appliquée à chaque élément des deux listes? Dans ce défi, vous devrez créer une fonction qui prend deux listes et une fonction en paramètre, et qui renvoie une liste d'éléments qui existent dans les deux listes, après avoir appliqué la fonction fournie à chaque élément des deux listes.

Intersection de listes basée sur une fonction

Écrivez une fonction intersection_by(a, b, fn) qui prend deux listes a et b, et une fonction fn. La fonction devrait renvoyer une liste d'éléments qui existent dans les deux listes, après avoir appliqué la fonction fournie à chaque élément des deux listes.

Entrée

  • Deux listes a et b (1 <= len(a), len(b) <= 1000)
  • Une fonction fn qui prend un argument et renvoie une valeur

Sortie

  • Une liste d'éléments qui existent dans les deux listes, après avoir appliqué la fonction fournie à chaque élément des deux listes.
def intersection_by(a, b, fn):
  _b = set(map(fn, b))
  return [item for item in a if fn(item) in _b]
from math import floor

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

Résumé

Dans ce défi, vous avez appris à trouver l'intersection de deux listes en fonction d'une fonction spécifique appliquée à chaque élément des deux. Vous avez écrit une fonction intersection_by(a, b, fn) qui prend deux listes et une fonction, et renvoie une liste d'éléments qui existent dans les deux listes, après avoir appliqué la fonction fournie à chaque élément des deux listes.