リスト内包表記

リスト内包表記の扱い方

イテレータからリストを作成

イテレータからリストを作成するときは、リスト内包表記が便利

squar = [0, 1, 4, 9, 16, 25]

こんなリストを作るには

squar = []
for x in range(6):
    squar.append(x**2)

squar = list(map(lambda x:x**2, range(6)))

リスト内包表記を使うと

squqr = [x**2 for x in range(6)]

リスト内包表記のネスト

リスト内包表記をネストすると後ろが内側

cell = [(x,y) for x in ['A', 'B'] for y in [1, 2]]

[('A', 1), ('A', 2), ('B', 1), ('B', 2)]

cell = []
for x in ['A', 'B']:
    for y in [1, 2]:
        cell.append((x,y))

[('A', 1), ('A', 2), ('B', 1), ('B', 2)]

条件をつけてリストを作成

odd = [x for x in range(10) if x % 2 == 0]

[1, 3, 5, 7, 9]

ifで評価した式が真となる要素のリストを作成する。
if elseとしたいときは 3 項演算子を使って

even_or_odd = ['even' if x % 2 == 0 else 'odd' for x in range(10)]

['even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd']

Last modified 2020.11.22