Python 3 イディオム集

Python 3 でよく使うコードの書き方――いわゆる「イディオム」についてまとめてみました。

次のようなイディオムを集めています。

not が含まれる条件式

not が含まれる条件式は人間が読んで読みやすい形(≒英語の語順に近い形)で書きます。

# ○:
if value is not None:
    ...

# ✕:
if not value is None:
    ...

コレクション系の値の非空チェック

listtupledict 等のコレクション系の値の非空チェックは名前を if 文に直接渡して行います。

links = magical_func_collecting_links(url)

# ○:
if links:
    ...

# ✕:
if len(links):
    ...

# ✕:
if len(links) > 0:
    ...

list のコピー

list のコピー(複製)には copy() メソッドを使用します。

alist = [...]

# ○:
cloned_list = alist.copy()

Python 3.3 未満( 3.2 以下)のバージョンでは copy() メソッドが提供されていないので次の書き方を使います。

alist = [...]

# ○:
cloned_list = alist[:]

詳細はリンク先をお読みください。