内包表記を覚えるとfor in 文を使った処理を簡単に書き換えることができます。
リストの内包表記
[expression for item in iterable]
[expression for item in iterable]
例えば、空のリストに1から5までの整数のリストを作成するとします。
for in文を使うと次のようになります。
number_list = [] for number in range(1,6): number_list.append(number)
結果
[1, 2, 3, 4, 5]
これを内包表記で記述すると次のようになります。
number_list = [number for number in range(1,6)]
結果
[1, 2, 3, 4, 5]
a_set = [number for number in range(1,6) if number % 3 == 1]
結果
[1, 4]
内包表記は辞書でも使うことができます。
dct = {i: i*2 for i in range(3)}
結果
{0: 0, 1: 2, 2: 4}
参考例
リストの含む要素の型がfloat型だとします。これを全てint型に変えるには次のようにします。
num = [2.8, 1.4, 3.5, 4.1, 5.9] num_int = list(map(int, num))
内包表記を使うとmap()を使う必要がありません。
num_int = [int(num_int) for num_int in num]
表示結果
[2, 1, 3, 4, 5]