Pythonの内包表記について

Pythonには内包表記という、リストなどの iterableな オブジェクトのループ処理をシンプルに記述できる記法があります。今回は基本的な内包表記についてまとめてみました。

通常のリスト

Pythonでリストに追加するには下記のように下記のが一般的ですが、内包表記というものもあります。

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

print(squares)
# 結果
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

内包表記

内包表記の場合、下記のように1行で書くことができます。

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

map()

リストの各要素に関数を適用するmap関数を用いて書くこともできます。

# map(関数, リスト)
squares = list(map(lambda x: x**2, range(10)))
# 結果
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

参考:4. Map, Filter and Reduce