2015年11月30日

内包表記の話1

Python 文法の特徴の一つと言える内包表記について話します。
本項では内包表記の種類についてまとめます。


一口に内包表記と言っても、その種類は4つあります。

  • リスト内包表記
  • dict内包表記
  • set内包表記
  • ジェネレーター内包表記
それぞれの定義方法は以下のようになります。
>>> data = [1, 4, 2, 8, 5, 7]

# リスト
>>> l = [i for i in data]

# dict
>>> d = {i:str(i) for i in data}

# set
>>> s = {i for i in data}

# ジェネレータ
>>> g = (i for i in data)


この中で最も有名なのがリスト内包表記でしょう。Python に最初に実装された内包表記がリスト内包表記ですし、単に内包表記と言えばそれがリスト内包表記のことを指すことも多いです(この言葉の使い方は正確ではないのですが)。

dict内包表記と set内包表記の使い方は、リスト内包表記と同等です。出力が dict か set である点のみが違いです。

ジェネレーター内包表記は出力がジェネレーターであるため、使い所が他の3つとは異なります。
ジェネレーターから出力される値そのものはリスト内包表記のリストと同じです。では、どのような場面でジェネレーター内包表記を使うべきなのか、次項にて紹介します。

0 件のコメント:

コメントを投稿