Pythonの内包表記とは、ひとつ以上のイテレータ からPythonデータ構造をコンパクトに作れる形式です。
内包表記
内包表記が書けるようになると、データ分析でもループ文を1行で書けたりと便利です。
内包表記にはリスト内包表記、辞書包括表記、集合内包表記、ジェネレータ内包表記があります。
リスト内包表記
内包表記を使ったリストの作成
number_list = [number for number in range(1,6)] number_list
結果
[1, 2, 3, 4, 5]
enumerate関数を併用して作成するリスト
インデックス番号と値がタプルになってリストができます。
number_list = [(i, number) for i, number in enumerate(range(1,6))] number_list
結果
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
上のサンプルをformat関数を使って整形した例
number_list = ['{}:{}'.format(i,number) for i, number in enumerate(range(1,6))] number_list
結果
[‘0:1’, ‘1:2’, ‘2:3’, ‘3:4’, ‘4:5’]
for文で取り出した値を加工する例
number_list = [number + 1 for number in range(1,6)] number_list
結果
[2, 3, 4, 5, 6]
リストの要素をint型に変える例
num = [2.8, 1.4, 3.5, 4.1, 5.9] num_int = [int(num_int) for num_int in num] num_int
結果
[2, 1, 3, 4, 5]
リスト内包表記の条件式を追加
if文と併用した例
a_list = [number for number in range(1,6) if number % 2 == 1] a_list
結果
[1, 3, 5]
辞書包括表記
word = 'letters' letter_counts = {letter:word.count(letter) for letter in word} letter_counts
結果
{‘e’: 2, ‘l’: 1, ‘r’: 1, ‘s’: 1, ‘t’: 2}
dct = {i: i*2 for i in range(3)} dct
結果
{0: 0, 1: 2, 2: 4}
zip関数と内包表記では同じことができる
zip()で辞書作成
english = ['dog', 'cat', 'bird', 'monkey'] japanese = ['犬', '猫', '鳥', '猿'] dic = dict(zip(english,japanese)) dic
結果
{‘bird’: ‘鳥’, ‘cat’: ‘猫’, ‘dog’: ‘犬’, ‘monkey’: ‘猿’}
内包表記で辞書作成
dic = {e:j for e,j in zip(english,japanese)} dic
結果
{‘bird’: ‘鳥’, ‘cat’: ‘猫’, ‘dog’: ‘犬’, ‘monkey’: ‘猿’}
集合内包表記
参考になった書籍
プログラミングを少しでも経験がありPython の文法を学習する場合は、「入門 Python 3」が良いと思います。長く使えます。
「退屈なことはPython にやらせよう」はオブジェクト指向の解説がないです。代わりにPythonを使った便利な実例が初心者には嬉しい内容です。正規表現から、簡単なスクレイピング 、画像操作などあります。ただし、中級者以上には少し物足りないかもしれません。
Python入門一覧
- Python入門 クラスの継承とオーバーライド(動画あり)
- Python入門 オブジェクト指向について、クラスの作り方(動画あり)
- Python入門 lambda関数の使い方、map関数の使い方(動画あり)
- Python入門 位置引数、キーワード引数、デフォルト引数、便利な引数の使い方(動画あり)
- Python入門 グローバル変数とローカル変数(動画あり)
- Python入門 モジュールのインポートとrandomモジュール(動画あり)
- Python入門 関数の定義方法(動画あり)
- Python入門 内包表記(動画あり)
- Python入門 zip関数(動画あり)
- Python入門 for in文の活用(動画あり)
- Python入門 for in文の基本(動画あり)
- Python入門 三項演算子(動画あり)
- Python入門 if文の使い方2 while文の使い方(動画あり)
- Python入門 if文の使い方(動画あり)
- Python入門 浅いコピーと深いコピー(動画あり)
- Python入門 参照渡し(動画あり)
- Python入門 集合(動画あり)
- Python 入門 辞書(動画あり)
- Python 入門 タプルについて(動画あり)
- Python入門 リストのメソッド(動画あり)
- Python入門 リストのスライス(動画あり)
- Python入門 リスト
- Python入門 BMI課題 (動画あり)
- Python入門 文字列の連結とフォーマット1(動画あり)
- Python入門 文字列のフォーマット2(動画あり)
- Python入門 エスケープと型変換とinput()の使い方(動画あり)
- Python入門 pep8(動画あり)
- Python入門 変数の練習(動画あり)
- Python入門 変数(動画あり)
- Python入門 文字列(動画あり)
- Python入門 演算子(動画あり)
- Python入門 Python をはじめよう! (動画あり)
Pythonサンプルのダウンロード
ここでダウンロードする「list_comp.ipynb」ファイルは、このPython動画で使用したものです。