Pythonを学ぶ 17 配列(リスト)その2
参照型変数
配列は今まで出てきた変数(値型)とは特性が異なり、参照型の変数です。
# 値型変数
a = 12
b = a
b = 5
print(a)
print(b)
# 12、5と表示される
値型変数は上記のようにそれぞれの変数が固有で値を保持します。
# 参照型変数
a = [0, 1, 2]
b = a
b[0] = 5
print(a)
print(b)
# どちらも[5, 1, 2]と出力されます。
一方、参照型変数は仕組みが異なり、aもbもb = aの時点で同じ対象(オブジェクト)を参照しています。
そのため、再代入した時の結果が値型と異なってきます。
copyメソッド
参照型の特性に邪魔されずに扱いたい場合はcopy()メソッドを使うことができます。
# copy()を使う
a = [0, 1, 2]
b = a.copy()
b[0] = 5
print(a)
print(b)
# 値型変数のように別々のデータを保持
多次元配列
配列の要素を入れ子にして表のようなデータ構造を作ることができます。
multi_list = [[1, 2], [3, 4], [5, 6]]
print(multi_list[0])
print(multi_list[2][1])
多次元配列ということなので上記の二次元だけでなく、三次元以上も扱うことができます。
しかしながら取扱いが大変になるので、あまり利用されることはありません。