高見知英の技術ログ

技術関係のログをQiitaから移行してきました。プログラミングのほか、使っているアプリの細かい仕様についてなど書いていきます。

Pythonは複数変数に同時に値を設定できる

たいしたことではないですが覚えておくといろいろ役に立つのでメモ。

Pythonでは、関数の戻り値をtupleで得るなど、複数の値を1度に取得することがたまにあります。

たとえばtkinterでウィンドウの寸法を取得するには、window.geometry()で取得できる値を分割するのが簡単

  import re
  sizes = re.split("[x+]", window.geometry())

このときsizesの配列には、

  • 0: 幅
  • 1: 高さ
  • 2: X位置
  • 3: Y位置

という値がはいるのですが、同じようなコードが連続するとどれがどの値なのかぱっと見分かりづらくなる。

そんなときはこうすると良い。

  w, h, x, y = re.split("[x+]", window.geometry())

こうすると変数w,h,x,yにそれぞれの値がはいるので管理が楽。さらにintにするには

w, h, x, y = map(lambda s: int(s), re.split("[x+]", window.geometry()))

とすれば良い。tupleやlistに直さなくても良いんだ…。

どうということはないけど覚えておくと意外と役に立つ書き方でした。