【Python】二次元配列(リスト)の列を抽出 | リスト内包表記を使おう

ども、武器商人(@bukilog)です。

Pythonの二次元配列(リスト)の扱い方が慣れないとちょっと難しいのでサンプルコードを元に解説します。特に、リスト内包表記なんかは、他の言語ではあまり使わないのでこの機会にぜひ覚えて欲しいです。
f:id:bukidarts:20191205115448p:plain

二次元配列(リスト)とは?

エクセルなどでおなじみの、行と列を持った以下のようなデータ構造のことです。

csvやdbのテーブルなどもこういったデータ構造を表現することが多いので、覚えておいて損は無い内容です。

f:id:bukidarts:20191205114156p:plain

実行環境

以下記事でもご紹介した、GDB onlineっていうオンライン実行環境です。実際に打ち込みながら学習することをおすすめします。
buki.hateblo.jp

サンプルコード

二次元配列(リスト)の生成方法

M=[]
M.append([1,2,3])
M.append([4,5,6])
M.append([7,8,9])
print(M)

二次元配列(リスト)の行にアクセス

M[n]という形でアクセス出来ます。添字は0からです。

print(M[0])
print(M[1])
print(M[2])

for文で回すことも出来ます。イテレータを使うのですが、その辺の詳細はまた後程。

for row in M:
print(row)

二次元配列(リスト)の列にアクセス

Pythonライクな書き方ですが、リスト内包表記を使うと楽です。

print([row[0] for row in M])
print([row[1] for row in M])
print([row[2] for row in M])

慣れないとなかなか気持ち悪い書き方ですが、ちゃんと動きます。。

実行結果は、冒頭でも添付した以下の画像です。
f:id:bukidarts:20191205115448p:plain

Python おすすめ書籍

Pythonは人気言語になりたくさんの書籍が発売されておりますが、Pythonの開発者のグイドの書いた書籍が地味に一番良いです。チュートリアルという名前がついておりますが、それほどレベルが低いわけではなく、むしろ高度な内容をサラッと扱っています。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です