#Pythonでよく見る値のスワップ
よく見かける値の交換(スワップ)方法に以下のようなものがあります。
例えば C/C++
swapSample.cpp
#include <iostream>
using namespace std;
int main(void){
//初期設定
int x = 10;
int y = 25;
int tmp = 0;
cout << "x:"<< x << ", " << "y:"<< y << '\n';
// ここで交換処理をする
tmp = x;
x = y;
y = tmp;
cout << "x:"<< x << ", " << "y:"<< y << '\n';
return 0;
}
// 出力結果:
// x:10, y:25
// x:25, y:10
こういうswap処理をPythonでは以下のようにしてしまいます。
swapPython.py
x, y = 10, 25
print("x:{0}, y:{1}".format(x,y))
x,y = y, x # これだけでswap!
print("x:{0}, y:{1}".format(x,y))
# 出力結果:
# x:10, y:25
# x:25, y:10
この方法はよくフツーに便利に使っていますが、これはPythonのもつ
タプル
という機能です。
これはリストとは違い、
t = (1, 2, 3, 4, 5)
のように表現します。すると
>>> t [ENTER]
> (1,2,3,4,5)
>>>
のように値が格納されています。
いろいろな使用方法はあるのですが、今回はスワップについて。
##タプルのアンパッキング
タプルはかっこ()を省略することが可能です。
以下の表現は
swapPython.py
x, y = y, x # これだけでswap!
という箇所は実は
swapPython.py
(x, y) = (y, x) # これだけでswap!
というタプルの処理を実行したことになります。
#まとめ
ちょっとしたことでしたが
いつもやってる処理が、実はこういう意味だったんだ
と気づくことは多いものですね。