Aplatir les listes imbriquées avec Python

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, une liste peut contenir d'autres listes en tant qu'éléments. Parfois, nous devons aplatir une liste, ce qui signifie convertir une liste imbriquée en une seule liste qui contient tous les éléments de la liste d'origine. Une manière de faire cela est d'utiliser l'opérateur de diffusion. Dans ce défi, vous devrez implémenter une fonction qui aplatit une liste à l'aide de l'opérateur de diffusion.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) 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{{"Aplatir les listes imbriquées avec Python"}} python/comments -.-> lab-13722{{"Aplatir les listes imbriquées avec Python"}} python/conditional_statements -.-> lab-13722{{"Aplatir les listes imbriquées avec Python"}} python/for_loops -.-> lab-13722{{"Aplatir les listes imbriquées avec Python"}} python/lists -.-> lab-13722{{"Aplatir les listes imbriquées avec Python"}} python/tuples -.-> lab-13722{{"Aplatir les listes imbriquées avec Python"}} python/function_definition -.-> lab-13722{{"Aplatir les listes imbriquées avec Python"}} python/build_in_functions -.-> lab-13722{{"Aplatir les listes imbriquées avec Python"}} python/data_collections -.-> lab-13722{{"Aplatir les listes imbriquées avec Python"}} end

Spread List

Écrivez une fonction appelée spread(arg) qui prend une liste en argument et renvoie une nouvelle liste qui contient tous les éléments de la liste d'origine, aplatis. Si un élément de la liste d'origine est une liste elle-même, ses éléments doivent être ajoutés individuellement à la nouvelle liste. La fonction ne doit pas modifier la liste d'origine.

Pour implémenter la fonction, vous devriez parcourir les éléments de la liste d'origine et utiliser l'opérateur de diffusion pour ajouter les éléments à la nouvelle liste. Si un élément est une liste, vous devriez utiliser la méthode extend() pour ajouter ses éléments à la nouvelle liste. Si un élément n'est pas une liste, vous devriez utiliser la méthode append() pour l'ajouter à la nouvelle liste.

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]

Résumé

Dans ce défi, vous avez appris à utiliser l'opérateur de diffusion pour aplatir une liste en Python. Vous avez également implémenté une fonction qui prend une liste en argument et renvoie une nouvelle liste qui contient tous les éléments de la liste d'origine, aplatis. Il s'agit d'une technique utile à connaître lorsqu'on travaille avec des listes imbriquées en Python.