[Python]リスト内包表記

これが非常に良い。

下記のような処理を作るとき。

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)])
# => ['', '', '', '', '']

辞書内包表記やタプルに関してはまた別の機会に。

参考

pythonの内包表記を少し詳しく

リスト内包表記入門

Pythonリスト内包表記の使い方

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ten + 16 =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください