内包表記とは
コードを簡潔に記述する方法。
今回は、内包表記の代表的な3つの形式を紹介します。
- リスト内包表記
- 集合内包表記
- 辞書内包表記
リスト内包表記
3つの表記の中で、一番使う機会の多いのがリスト内包表記です。
記述方法は下記の通り。
list1
は内包表記を使用しない記述
list2
は内包表記を使用した記述です。
内包表記を使用しない場合は、3行でリストを記述しているが、
内包表記を使用すると、1行でリストを記述しています。
# リスト内包表記を使用しない場合
list1 = []
for i in range(10):
list1.append(i)
# リスト内包表記
list2 = [i for i in range(10)]
# 作成したリストの表示
print(list1)
print(list2)
以下は、print文で表示した結果です。
リスト内包表記を使用していない場合とした場合で、
作成したリストは同じことがわかります。
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
集合内包表記
集合を作成するときにも内包表記で記述可能です。
リスト内包表記と似た形式ですが、集合内包表記は、’{}’中括弧を使用します。
記述方法は、下記の通りです。簡単ですね!
# 集合内包表記
s = {i for i in range(10)}
# 作成した集合型の表示
print(s)
以下は、print文で表示した結果です。
0から9までの数字が、集合型で定義されています。
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
辞書内包表記
2つのリストを内包表記により、辞書型を作成する記述方法です。
上記で紹介した2つの内包表記と少し記述方法が異なります。
なにが異なるかというと、zip関数を使用することです。
zip関数は、2つのリストを要素ごとにタプルで返してくれる関数です。
辞書内包表記の記述方法は、下記の通りです。
リスト meals
に食事のタイミングが格納されていて、
リスト foods
に食事の種類が格納されています。
meals = ['breakfast', 'lunch', 'dinner']
foods = ['rice', 'ramen', 'sushi']
# 辞書内包表記
d = {meal: food for meal, food in zip(meals, foods)}
# 作成した辞書型を表示
print(d)
以下は、print文で表示した結果です。
リストの要素順に、辞書型で定義されていますね
{'breakfast': 'rice', 'lunch': 'ramen', 'dinner': 'sushi'}
まとめ
内包表記は、コードを簡潔に効率よく記述する方法です。
特に、リスト内包表記と辞書内包表記はよく使用するので、
覚えておくと便利です
積極的に使用していきましょう!