Pythonの二次元配列
Q&A
Closed
解決したいこと
Pythonの二次元配列
内容
以下ソースコードで、最初に行と列の数を指定し、多次元配列の初期化を行った後、index,添え字で指定した場所の要素を変えたいのですが、なぜか最後に入力した値が全ての行の要素になってしまいます。
print印字で色々考えたり試しましたが、分かりません。
該当するソースコード
#半角スペース区切りで、行数と列数を入力
x = input()
s,m = x.split(' ')
s = int(s)
m = int(m)
# row col
list01 = [[0] * m] * s
print(list01)
tmp_list = []
for i in range(m):
print(i,'行目:',end='')
tmp = input()
tmp_list = tmp.split(' ')
for n in range(len(tmp_list)):
print(f'list01[{i}][{n}] <- tmp_list[{tmp_list[n]}]')
list01[i][n] = tmp_list[n]
print(f'list01[{i}][{n}] = {list01[i][n]}')
for i in list01:
print(i)
実行例)
2 2
[[0, 0], [0, 0]]
0 行目:1 2
list01[0][0] <- tmp_list[1]
list01[0][0] = 1
list01[0][1] <- tmp_list[2]
list01[0][1] = 2
1 行目:3 4
list01[1][0] <- tmp_list[3]
list01[1][0] = 3
list01[1][1] <- tmp_list[4]
list01[1][1] = 4
['3', '4']
['3', '4']
やりたいこと
上記の実行例で、
[
[0,0],
[0,0]
]
を書き換え、
最後の
['3','4']
['3','4']
となっているところを
['1','2']
['3','4']
にしたい。
0 likes