Python で 2 次元配列 (NumPy を使用しない場合はリストのリスト) を初期化する方法は? 質問する

Python で 2 次元配列 (NumPy を使用しない場合はリストのリスト) を初期化する方法は? 質問する

私は Python を始めたばかりで、2 次元リストを使用しようとしています。最初はすべての場所に同じ変数を入力します。私は次のようにしました:

def initialize_twodlist(foo):
    twod_list = []
    new = []
    for i in range (0, 10):
        for j in range (0, 10):
            new.append(foo)
        twod_list.append(new)
        new = []

望ましい結果が得られますが、回避策のように感じます。これを行うには、より簡単/より短く/よりエレガントな方法がありますか?

ベストアンサー1

Pythonで2次元リストを初期化するには、

t = [ [0]*3 for i in range(3)]

ただし、使用しないでください[[v]*n]*n。これは罠です!

>>> a = [[0]*3]*3
>>> a
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> a[0][0]=1
>>> a
[[1, 0, 0], [1, 0, 0], [1, 0, 0]]

おすすめ記事