これが非常に良い。
下記のような処理を作るとき。
events = []
for i in range(10):
if i % 2 == 0:
events.append(i)
print(events)
リスト内包表記だと下記のように書ける。append()
を実行する処理が減るので一般的に処理速度は向上する。
下記のようにif文を配置するときは後置のifになる。
print([i for i in range(10) if i % 2 == 0])
# => [0, 2, 4, 6, 8]
なおif ~ elseの条件分岐を行うときは前置のifになる。
print([i if i%2==0 else i*2 for i in range(10)])
# => [0, 2, 2, 6, 4, 10, 6, 14, 8, 18]
任意の文字列を複数個(リストに)出力もできる。
print(['' for i in range(5)])
# => ['', '', '', '', '']
辞書内包表記やタプルに関してはまた別の機会に。