Dividir una lista basada en una 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 este desafío, escribirás una función de Python que divide una lista en dos grupos basada en el resultado de una función de filtrado dada. Esta es una tarea común en la programación, especialmente cuando se tratan grandes conjuntos de datos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/comments("Comments") 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/FunctionsGroup -.-> python/lambda_functions("Lambda Functions") subgraph Lab Skills python/comments -.-> lab-13590{{"Dividir una lista basada en una función"}} python/conditional_statements -.-> lab-13590{{"Dividir una lista basada en una función"}} python/for_loops -.-> lab-13590{{"Dividir una lista basada en una función"}} python/list_comprehensions -.-> lab-13590{{"Dividir una lista basada en una función"}} python/lists -.-> lab-13590{{"Dividir una lista basada en una función"}} python/tuples -.-> lab-13590{{"Dividir una lista basada en una función"}} python/function_definition -.-> lab-13590{{"Dividir una lista basada en una función"}} python/lambda_functions -.-> lab-13590{{"Dividir una lista basada en una función"}} end

Dividir una lista basada en una función

Escribe una función bifurcate_by(lst, fn) que tome una lista lst y una función de filtrado fn como argumentos. La función debe dividir la lista en dos grupos basados en el resultado de la función de filtrado. Si la función de filtrado devuelve un valor verdadero para un elemento, éste debe agregarse al primer grupo. De lo contrario, debe agregarse al segundo grupo.

Tu función debe devolver una lista de dos listas, donde la primera lista contiene todos los elementos para los cuales la función de filtrado devolvió un valor verdadero, y la segunda lista contiene todos los elementos para los cuales la función de filtrado devolvió un valor falso.

Utiliza una comprensión de lista para agregar elementos a los grupos, basado en el valor devuelto por fn para cada elemento.

def bifurcate_by(lst, fn):
  return [
    [x for x in lst if fn(x)],
    [x for x in lst if not fn(x)]
  ]
bifurcate_by(['beep', 'boop', 'foo', 'bar'], lambda x: x[0] == 'b')
## [ ['beep', 'boop', 'bar'], ['foo'] ]

Resumen

En este desafío, aprendiste cómo dividir una lista en dos grupos basados en el resultado de una función de filtrado dada. Utilizaste una comprensión de lista para agregar elementos a los grupos, basado en el valor devuelto por la función de filtrado para cada elemento. Esta es una técnica útil en la programación, especialmente cuando se tratan grandes conjuntos de datos.