【Python】変数に値を代入する
以下の見出しから詳細にジャンプしてご覧ください。
基本的な代入
Pythonでは、変数に値を代入するには、=
を使用します。左辺に変数名、右辺に値を記述します。
x = 10
name = "Alice"
is_active = True
この例では、x
に整数の 10
、name
に文字列の "Alice"
、is_active
に論理値の True
を代入しています。
複数同時代入
Pythonでは、複数の変数に同時に値を代入できます。
a, b, c = 1, 2, 3
ここでは、a
に 1
、b
に 2
、c
に 3
を代入しています。同じ値を複数の変数に代入することも可能です。
x = y = z = 0
この場合、x
、y
、z
の全てに 0
が代入されます。
値のスワップ(入れ替え)
Pythonでは、一時変数を使わずに2つの変数の値を簡単に入れ替えることができます。
x, y = 5, 10
x, y = y, x
print(x, y) # 出力: 10, 5
シーケンスのアンパッキング
リストやタプルなどのシーケンスの値を複数の変数に代入することができます。
numbers = [1, 2, 3]
a, b, c = numbers
print(a, b, c) # 出力: 1 2 3
また、アンパッキング時に「残りすべて」を特定の変数に代入することも可能です。
numbers = [1, 2, 3, 4, 5]
a, *b, c = numbers
print(a, b, c) # 出力: 1 [2, 3, 4] 5
ミュータブルとイミュータブルの違い
Pythonのデータ型は、ミュータブル(変更可能)なものとイミュータブル(変更不可能)なものに分類されます。
例:
- イミュータブル: 整数、浮動小数点数、文字列、タプル
- ミュータブル: リスト、辞書、集合
x = [1, 2, 3]
x[0] = 10 # リストの変更は可能
y = "hello"
y[0] = "H" # 文字列の変更はエラー
コピーと参照の違い
Pythonでは、オブジェクトを代入する際に、実際には参照がコピーされます。そのため、1つのオブジェクトを変更すると、他の参照先にも影響を及ぼします。
original = [1, 2, 3]
copy = original
copy[0] = 100
print(original) # 出力: [100, 2, 3]
これを防ぐためには、copy()
メソッドや copy
モジュールを使用します。
高度な代入テクニック
Pythonには、代入をより効率的に行う方法がいくつかあります。
条件付き代入
x = 10 if condition else 20
これは、condition
が真の場合に x
に 10
、偽の場合に 20
を代入します。
代入式(ウォルラス演算子)
Python 3.8以降では、:=
を使用して代入と評価を同時に行うことができます。
if (n := len(data)) > 10:
print(f"データが多すぎます: {n}")
以上がPythonでの変数への値の代入についての詳細な解説です。