0
0

Pythonのよりシンプルな書き方

Posted at

はじめに

現場でシンプルにコードを書いてプルリクエストを提出したら、Pythonの経験が少ししかないレビュワーから「これどんな処理なんですか?」と聞かれたので説明したことがあり、Pythonはバージョンが上がるにつれ、よりシンプルな書き方ができるようになります。
一時期、エフェクティブPythonやデザインパターンなど勉強していたので有名どころの文法をまとめました。

リスト内包表記

これです

squares = [x**2 for x in range(10)]
# 出力:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

このコードは0から9までの数の2乗のリストを作成する処理です。
このようにリスト内包表記はPythonでリストを簡単に作成する文法です

ちなみに、リスト内包表記を使わない場合は

squares = []
for x in range(10):
    squares.append(x**2)

このようにリスト内包表記を使うと3行で書けるものを1行で書けます

リスト内包表記にif文を組み合わせることが可能です
0から9の数字の中から偶数の数字のリストを作成する処理をfor文とifを使って書くと

evens = []
for x in range(10):
    if x % 2 == 0:
        evens.append(x)

これをリスト内包表記を使うと

evens = [x for x in range(10) if x % 2 == 0]
# 出力:[0, 2, 4, 6, 8]

おわりに

レビュワーが理解しにくいようなコードを書いていたので、チームのレベルに合わせた文法(書き方)を選択するのが最善手であるように思えます。
かく言う私も他人の書いたコードの読解に苦戦していたことがあり、1年目にエレガントなコードを書く先輩Aがいらっしゃり、先輩Aは開発フェーズまで当プロジェクトまでしかいないこともあり、テストフェースになると別プロジェクトへ移ってしまい、UTで先輩Aの書いたコードからバグが見つかり、修正を任された時にコードの内容が理解できず、苦しいコードリーディングでした(軽微なバグでしたが)
また、私自身は市場価値的にジュニアレベルに相当するので、早い内にミドルレベル、ゆくゆくはシニアレベルまで行きたいです。
エレガントなコードを書いていた先輩Aはよりエレガントに書いているんでしょうか?
ちなみに、先輩A曰く最新情報をキャッチするイノベータータイプではなく、アーリーアダプタータイプのようです。

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