私は 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]]