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

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

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

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

実行環境

安定のIdleです。

Python 3.6.0 |Anaconda custom (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.

サンプルコード

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

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

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

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

>>> M[0]
[1, 2, 3]
>>> M[1]
[4, 5, 6]
>>> M[2]
[7, 8, 9]

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

>>> for row in M:
	print(row)

	
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

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

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

>>> [row[0] for row in M]
[1, 4, 7]
>>> [row[1] for row in M]
[2, 5, 8]
>>> [row[2] for row in M]
[3, 6, 9]

コメント