Intersección de listas basada en función

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En Python, podemos encontrar la intersección de dos listas utilizando los métodos set() e intersection(). Sin embargo, ¿y si queremos encontrar la intersección basada en una función específica aplicada a cada elemento de ambas listas? En este desafío, crearás una función que tome dos listas y una función, y devuelva una lista de elementos que existen en ambas listas, después de aplicar la función proporcionada a cada elemento de ambas listas.

Intersección de listas basada en función

Escribe una función intersection_by(a, b, fn) que tome dos listas a y b, y una función fn. La función debe devolver una lista de elementos que existen en ambas listas, después de aplicar la función proporcionada a cada elemento de ambas listas.

Entrada

  • Dos listas a y b (1 <= len(a), len(b) <= 1000)
  • Una función fn que tome un argumento y devuelva un valor

Salida

  • Una lista de elementos que existen en ambas listas, después de aplicar la función proporcionada a cada elemento de ambas listas.
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]

Resumen

En este desafío, has aprendido cómo encontrar la intersección de dos listas basada en una función específica aplicada a cada elemento de ambas. Has escrito una función intersection_by(a, b, fn) que toma dos listas y una función, y devuelve una lista de elementos que existen en ambas listas, después de aplicar la función proporcionada a cada elemento de ambas listas.