Aplanar listas anidadas con Python

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, una lista puede contener otras listas como elementos. A veces, necesitamos aplanar una lista, lo que significa convertir una lista anidada en una sola lista que contiene todos los elementos de la lista original. Una forma de hacer esto es usando el operador de expansión. En este desafío, se te pedirá implementar una función que aplane una lista usando el operador de expansión.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") 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/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/variables_data_types -.-> lab-13722{{"Aplanar listas anidadas con Python"}} python/comments -.-> lab-13722{{"Aplanar listas anidadas con Python"}} python/conditional_statements -.-> lab-13722{{"Aplanar listas anidadas con Python"}} python/for_loops -.-> lab-13722{{"Aplanar listas anidadas con Python"}} python/lists -.-> lab-13722{{"Aplanar listas anidadas con Python"}} python/tuples -.-> lab-13722{{"Aplanar listas anidadas con Python"}} python/function_definition -.-> lab-13722{{"Aplanar listas anidadas con Python"}} python/build_in_functions -.-> lab-13722{{"Aplanar listas anidadas con Python"}} python/data_collections -.-> lab-13722{{"Aplanar listas anidadas con Python"}} end

Aplanar una lista

Escribe una función llamada spread(arg) que tome una lista como argumento y devuelva una nueva lista que contenga todos los elementos de la lista original, aplanada. Si un elemento de la lista original es una lista en sí misma, sus elementos deben agregarse a la nueva lista individualmente. La función no debe modificar la lista original.

Para implementar la función, debes recorrer los elementos de la lista original y usar el operador de expansión para agregar los elementos a la nueva lista. Si un elemento es una lista, debes usar el método extend() para agregar sus elementos a la nueva lista. Si un elemento no es una lista, debes usar el método append() para agregarlo a la nueva lista.

def spread(arg):
  ret = []
  for i in arg:
    ret.extend(i) if isinstance(i, list) else ret.append(i)
  return ret
spread([1, 2, 3, [4, 5, 6], [7], 8, 9]) ## [1, 2, 3, 4, 5, 6, 7, 8, 9]

Resumen

En este desafío, has aprendido cómo usar el operador de expansión para aplanar una lista en Python. También has implementado una función que toma una lista como argumento y devuelve una nueva lista que contiene todos los elementos de la lista original, aplanada. Esta es una técnica útil de conocer cuando se trabaja con listas anidadas en Python.