多次元リストの生成

2010/8/14

Python2.5.4

リストの宣言

ls = []



x個の要素のリストがy個ある2次行列の生成

ls2d = [[0 for i in range(x)] for j in range(y)]


行(高さ), 列(幅), 色(チャンネル)の3次元リストの例

ls3d = [[[0 for i in range(ch)] for j in range(w)] for k in range(h)]

  

任意の次元のリストを作成する関数

import copy
def multi_list(*element_nums):
    dim = len(element_nums)
    data = [0 for j in range(element_nums[dim-1])]
    for i in range(2,dim+1):
        data = [ copy.deepcopy(data) for j in range(element_nums[dim-i])]
    return data

ls4d = multi_list(1,2,3,4)
# [[[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]]]