ショートカットは覚えておくと開発効率が段違いに上がります。
個人的に便利だと思ったものを10個紹介します。
今回は前編として、5個紹介します。
F Strings
はじめに紹介するのが、F Stringsです。これはバージョンが3.6以上で使用できます。
この機能は、文字列の中に変数を埋め込むことができるものです。
普通はカンマや+を用いて文字列と連結させるような形でやりますが、意外とめんどくさいです。
例を見てみましょう。
特徴としてはカーリーブラケットを使う点ですね。fは大文字でも小文字でも構いません。 ダブルクォートも文字列として出力したい場合にはシングルクォートに置き換えても大丈夫です。
使い方は限られますが、F Strings内で四則演算やリストを書くこともできます。
最後に便利な使い方を紹介しておきます。
F Stringsはprintと併用して使われることが多いですが、変数にも格納できます。
unpacking
一言でいうと、リストなどの複数の要素を持つものを分解して各変数に入れる機能です。
至る所で使用するので、この機会に覚えて使えるようにすると便利です。
よく使う場面としては、辞書型を展開するときです。辞書型はキーと値ーを一括りにして取り出す方法と値だけの使い方があるのでそのやり方も見ておきます。
itemsだとtupleで出力され、valuesを使うと値のみ取り出せます。用途によって使い分ければいいので、こういうことができるっていうことだけ知ってれば大丈夫です。
multiple assignment
変数aとbの要素を入れ替えたい場合があったとします。その際にbの要素をaに移した場合、aの要素が消えてしまうので一旦aの要素を逃すための変数を用意する必要がありました。その手間をなくしたのがmultiple assignment機能です。
これが従来のやり方です。multiple assimentで書き換えるとこのようになります。
コードがスッキリしました。pythonコードを書くときはこれを利用しましょう
comprehensions
英語のままだと聞き慣れないですが、日本語だと内包表記のことを指します。
0が100個のリストを作りたいとします。真っ先に思いつくのがforループでの実装だと思うのでとりあえず書いてみます。
この書き方はもうしないので、忘れてください。
リスト内包表記を使うことで、一行で書くことができます。少し応用すると、0~100の間から偶数のみを取り出してリストに格納することもできます。
他にも二重forループもできます。ただやりすぎるとコードの可読性が落ちるので注意しましょう。
察しのいいかたは気付いているかもしれませんが、当然リストもネストできます。
リスト内包表記ではないですが、comprehensionsの機能として[]を()に変更することで、ジェネレーターが作成できます。
このままだとジェネレーターオブジェクトとして出力されますが、listもしくはtuppleに変換すれば中身が表示できます。
辞書型も扱うことができます。よく見かける場所としては自然言語処理のBoWあたりです。文章が与えれて、単語の頻出度合いを調べたりするにも使えます。文章をアルファベット毎の頻出度合いに分解してみます。
object Multiplication
最初の方で用いましたが、掛け算を行うには*演算子を用います。ただ、文字列などの場合には繰り返し処理になります。
前編として、pythonのショートカットを5つ紹介しました。
次回は、後編として残りの5つを紹介します。