リスト内包表記
リスト内包表記の扱い方
イテレータからリストを作成
イテレータからリストを作成するときは、リスト内包表記が便利
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']