0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python3.8 「 := 」を用いた代入式

Posted at

去年の10月にリリースされたPython3.8ですが、その中の機能にとても使いやすい機能がありました。
python3.8なので、まだまだ使える機会は少ないかもしれないですが、今後使いこなせるようにするためにもここにまとめておきます。
Pythonの公式では、通称「セイウチ演算子」と呼ばれているものです。
※勉強不足かもしれないですが、私はこれで初めて知りました。。。。

公式ドキュメントを確認

What's New In Python 3.8

まずは公式ドキュメントを確認します。

代入式

大きな構文の一部として、変数に値を割り当てる新しい構文 := が追加されました。


サンプルコード

first_name = ['Sato', 'Tanaka', 'Suzuki', 'Yamada']
# 5文字以上なら辞書型に追加
dict = {word:n   for word in first_name if (n:=len(word)) > 4}
dict

# return dict
# {'Tanaka':6, 'Suzuki':6, 'Yamada':6}

内包表記をした時などに、条件文に書いたコードをそのまま利用したい時などに有効的なようです。
所見では複雑な感じがしますが、慣れると可読性も上がっていいかもしれないです。

個人的に躓いた点

dict = {word:n for word in first_name if (n:=len(word)) > 4}

の n:=len(word)
これは括弧でくくらないとSyntaxErrorがでてしまうので注意

おわりに

どんどん便利になっていきますね。
同じことを二度書かないという英語でも二度書かないために名詞をoneやitで置き換えますが、あれと似ているなと感じました。
python3.8が使えるようになったら私もこれをどんどん使いこなしていきたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?