# 別の変数に代入しただけではコピーにならない。 a = [0,1,2,3,4] b = a a[1] = 99 print(b) # リストのコピーには copy() メソッドを使う。 a = [0,1,2,3,4] b = a.copy() a[1] = 99 print(b) # リスト全体を切り出してもよい。 a = [0,1,2,3,4] b = a[:] a[1] = 99 print(b)
# 理窟はわからないがアスタリスクでリストが unpack できる。 a = [0,1,2,3,4] b = [*a] a[1] = 99 print(a) print(b)
―――――――――――――――――――――――――
Lua の場合:
-- 別の変数に代入しただけではコピーにならない。 a = {0,1,2,3,4} b = a a[2] = 99 print(table.concat(b,",")) -- 配列タイプのテーブルはたとえば下のように一度テーブルを unpack してから再度テーブルとして construct すればコピーできる。 -- 参考: http://lua.tips/index.php?Lua%20implements_func_table a = {0,1,2,3,4} b = {table.unpack(a)} a[2] = 99 print(table.concat(b,","))