2 次元リストは、他のリストをリストの要素として 1 つのリストに入れます。これはリストの入れ子です。 C または C++ を使用したことがある人は、Python の配列の概念を理解しているかもしれません。したがって、サードパーティのプラグインをインストールせずに Python で配列メソッドを使用したい場合は、 を使用する必要があります。このメソッドは 2 次元リストです。
実際、リスト内の要素は任意のデータ型にすることができます。例を見てみましょう。
my_list=[[1,2,3,4,5],'dotcpp',{1,2,3,},('www','dotcpp','com')]print(my_list)
出力は次のとおりです。
[[1,2,3,4,5],'dotcpp',{1,2,3},('www','dotcpp','com')]
このリストには、リスト、文字列、セット、およびタプルが含まれます。リスト内のすべての要素がリストである場合、それが最も一般的に使用される 2 次元リストになります。次に、2 次元リストを作成およびアクセスするいくつかの方法を紹介します。
直接作成する方法は、リストを定義した後に直接リスト名を入力することです。単純な小さなキーボード、つまり 1 ~ 9 を定義しましょう。
my_list=[[1,2,3],[4,5,6],[7,8,9]]print(my_list)
出力は次のとおりです。
[[1,2,3]、[4,5,6]、[7,8,9]]
それを理解すると、次のように理解できます。
図からわかるように、my_list[0] は [1,2,3] に対応するため、1 にアクセスすると、対応する座標は (0,0) となり、インデックスを通じてアクセスできます。 my_list[0][0]、その値は 1 に対応し、他の値も同様にアクセスされます。たとえば、要素 9 に対応するアクセスメソッドは my_list[2][2] です。
リストの作成は、ループを使用して行うこともできます。通常は、 6*6 の 2 次元リストを作成しましょう。
my_list=[]#最初にメインリストを作成します foriinrange(6):#6 回ループし、順番にメインリストの各要素に対して新しいリストを作成します j=[]#まず新しいリストを作成してメインに追加しますlist my_list.append(j)forminrange(1,7):j.append(m)#サブリストに要素を追加します print(my_list)#Output
出力は次のとおりです。
[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3, 4,5,6]、[1,2,3,4,5,6]、[1,2,3,4,5,6]]
実際の出力結果は、誰でも理解しやすいように 1 行にまとめられています。while ループを使用して 2 次元のリストを作成することもできます。
リスト内包表記を使用して 2 次元リストを作成することもできます。前のセクションでリスト内包表記を学習したので、この方法を直接使用してコードを簡素化できます。
もう一度、6 行 6 列の 2 次元リストを作成します。そのコードは次のとおりです。
my_list=[[iforiinrange(1,7)]forjinrange(1,7)]print(my_list)
出力は次のとおりです。
[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3, 4,5,6]、[1,2,3,4,5,6]、[1,2,3,4,5,6]]
この方法は、時間を節約するだけでなく、コードを最適化します。これは、ループ内で 6 つのリストを作成し、最後に 6 つの値をリストに配置して 2 次元のリストを形成することと同じです。
例を通してさらに詳しく見てみましょう。
6*6 のリストを作成し、その中の値を 1 ~ 100 の範囲でランダムに選択します。コードは次のとおりです。
importrandom#random はシステム ライブラリ内のモジュールであり、いつでも呼び出すことができます。簡単に説明します。my_list=[]#まずリストを作成します。foriinrange(6):#ループ内に 6 つのリストを作成し、それらを my_list j に入れます。 =[]my_list.append (j)forkinrange(6):c=random.randint(1,100)#randomでメソッドを呼び出して乱数を生成し、生成した乱数の値をcj.append(c)#に代入しますリスト j に c print(my_list) の値を追加します。
出力は次のとおりです。
[[52,83,15,35,54,60]、[17,61,77,99,60,50]、[88,81,9,61,76,95]、[21,52,20, 49,10,61]、[94,81,48,27,80,9]、[1,94,57,66,95,97]]
この質問の考え方は、上記の 2 番目の方法と一致しています。前の例と比較して、この方法は、リスト導出に習熟していない学生でも、早い段階で使用できます。
二次元リストに関しては、コンテストに参加したい学生にとっては非常に重要であり、後で迷路問題や 2n クイーン問題に遭遇する場合でも、二次元リストを使用せずには済みません。ここで簡単に紹介します。予備的な理解として、これらの 2 つのタイプの問題については、以降のコンテストの問題で説明します。もちろん、さらに 2 次元のリストについても説明します。