知ることはたのしい

"車輪の再発明"は時間がもったいないと思うから"車輪の設計図"を置いて学習の効率化に役立ちたい。そしてもっと素晴らしいものを開発してくれないかな。

pythonでswapする?

少し前の事になりますが、CTFの勉強がてらpythonでプログラムを書きをはじめて数日のこと、

値の交換をする必要があったのですが、たかだか数行のコードを書くのも煩わしく感じ

python便利そうだし組み込み関数とかあるんじゃないのと思って調べてみたところ有用なことを教わったのでメモを。

もちろんいろいろな言語の入門書にもあるような

tmp = a
a = b
b = tmp

とか、

a = a+b
b = a-b
a = a-b

と、書いてもいいのですがもっと楽にできる方法がありました。python素敵。

pythonでは1行で複数の代入が行えるので、

a, b = b, a

と、書けば上述の値の交換と同じことが1行で済むようになります。

このことは、pythonのリファレンスにも書いてあったのでリンクを貼っておきます。

6. 単純文 (simple statement) — Python 2.7.x ドキュメント