リストなどのイテラブルオブジェクトの作成には内包表記を使うとシンプルに書けます。
リスト内包表記でリストを作成
リスト内包表記は、for文を使ってリストを作るときに使えて、より簡潔に書ける記法です。
[]の中にfor文を書く感じで作成します。forを使ってリストを作成する方法と内包表記とを比較してみましょう。
pythonでリストを操作するforを使ってリストを作成
まずはfor文を使ってリストを作成する方法
for_list = [] #空のリストを作る
for i in range(1, 10):
for_list.append(i) #for_listにiを追加する
#作成したリストを表示
print(for_list) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
リスト内包表記でリストを作成
リスト内包表記では、
list = [式 for 変数 in リスト]
という形式で書きます。
list_comprehension = [i for i in range(1, 10)]
print(list_comprehension) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
式の部分に処理を書くとリストの内容を演算できます
#list_comprehension の式で、i * 2 でiを二倍にしてリスト作成している
list_comprehension2 = [i *2 for i in range(1, 10)]
print(list_comprehension2) #[2, 4, 6, 8, 10, 12, 14, 16, 18]
if文を使って繋ぐこともできます。
# list_comprehension3の式ではifでiが偶数の時だけリストに追加するようにしている
list_comprehension3 = [i *2 for i in range(1, 10) if i % 2 == 0]
print(list_comprehension3) #[4, 8, 12, 16]
内包表記はリスト以外も使える
上記の方法で作成したものはリスト型ですが、ジェネレータや他の型も作成することが可能です。
##内包表記でを作成するジェネレータを作成。()で囲む
generator_list = (i *2 for i in range(1, 10))
print(type(generator_list)) #generator型
---出力結果---
<class 'generator'>