KAMEYA_WORKS
リスト内包表記(List Comprehension)は、リストを簡潔に作成するためのPythonの便利な記法です。通常のループを使わず、シンプルにリストを生成できます。
一般的なリストの作成方法と比較してみましょう。
numbers = []
for i in range(5):
numbers.append(i ** 2)
print(numbers) # [0, 1, 4, 9, 16]
numbers = [i ** 2 for i in range(5)]
print(numbers) # [0, 1, 4, 9, 16]
リスト内包表記を使うことで、コードが簡潔になります。
リスト内包表記ではif
を組み込むこともできます。
even_numbers = [i for i in range(10) if i % 2 == 0]
print(even_numbers) # [0, 2, 4, 6, 8]
labels = ["偶数" if i % 2 == 0 else "奇数" for i in range(5)]
print(labels) # ['偶数', '奇数', '偶数', '奇数', '偶数']
リスト内包表記は二重ループにも対応しています。
table = [[i * j for j in range(1, 10)] for i in range(1, 10)]
print(table)
これは次のような二重ループと同じ意味になります。
table = []
for i in range(1, 10):
row = []
for j in range(1, 10):
row.append(i * j)
table.append(row)
リスト以外にも辞書や集合を内包表記で簡潔に作成できます。
squares_dict = {i: i ** 2 for i in range(5)}
print(squares_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
unique_numbers = {i % 3 for i in range(10)}
print(unique_numbers) # {0, 1, 2}
if
を使うと条件付きリストが作れる。リスト内包表記を活用すると、コードの可読性を維持しながら、より簡潔で効率的なプログラムを作ることができます!