Python を使ったネストされたリストのフラット化

PythonPythonBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Python では、リストには他のリストを要素として含めることができます。時々、リストをフラット化する必要があります。これは、ネストされたリストを元のリストのすべての要素を含む単一のリストに変換することを意味します。これを行う 1 つの方法は、スプレッド演算子を使用することです。このチャレンジでは、スプレッド演算子を使用してリストをフラット化する関数を実装するよう求められます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) 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{{"Python を使ったネストされたリストのフラット化"}} python/comments -.-> lab-13722{{"Python を使ったネストされたリストのフラット化"}} python/conditional_statements -.-> lab-13722{{"Python を使ったネストされたリストのフラット化"}} python/for_loops -.-> lab-13722{{"Python を使ったネストされたリストのフラット化"}} python/lists -.-> lab-13722{{"Python を使ったネストされたリストのフラット化"}} python/tuples -.-> lab-13722{{"Python を使ったネストされたリストのフラット化"}} python/function_definition -.-> lab-13722{{"Python を使ったネストされたリストのフラット化"}} python/build_in_functions -.-> lab-13722{{"Python を使ったネストされたリストのフラット化"}} python/data_collections -.-> lab-13722{{"Python を使ったネストされたリストのフラット化"}} end

スプレッドリスト

spread(arg) という名前の関数を作成します。この関数は、引数としてリストを受け取り、フラット化された元のリストのすべての要素を含む新しいリストを返します。元のリストの要素がそれ自体がリストである場合、その要素は個別に新しいリストに追加されます。この関数は元のリストを変更してはなりません。

この関数を実装するには、元のリストの要素をループし、スプレッド演算子を使用して要素を新しいリストに追加する必要があります。要素がリストである場合、その要素を新しいリストに追加するために extend() メソッドを使用します。要素がリストでない場合、それを新しいリストに追加するために append() メソッドを使用します。

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]

まとめ

このチャレンジでは、Python でリストをフラット化するためにスプレッド演算子をどのように使用するかを学びました。また、引数としてリストを受け取り、元のリストのすべての要素を含むフラット化された新しいリストを返す関数を実装しました。これは、Python のネストされたリストを扱う際に知っておくのに役立つ技術です。