リスト内包表記
イテレータからリストを作成
イテレータからリストを作成するときは、リスト内包表記が便利
1squar = [0, 1, 4, 9, 16, 25]
こんなリストを作るには
1squar = []
2for x in range(6):
3 squar.append(x**2)
4
5squar = list(map(lambda x:x**2, range(6)))
リスト内包表記を使うと
1squqr = [x**2 for x in range(6)]
リスト内包表記のネスト
リスト内包表記をネストすると後ろが内側
1cell = [(x,y) for x in ['A', 'B'] for y in [1, 2]]
2
3[('A', 1), ('A', 2), ('B', 1), ('B', 2)]
4
5cell = []
6for x in ['A', 'B']:
7 for y in [1, 2]:
8 cell.append((x,y))
9
10[('A', 1), ('A', 2), ('B', 1), ('B', 2)]
条件をつけてリストを作成
1odd = [x for x in range(10) if x % 2 == 0]
2
3[1, 3, 5, 7, 9]
とif
で評価した式が真となる要素のリストを作成する。if else
としたいときは 3 項演算子を使って
1even_or_odd = ['even' if x % 2 == 0 else 'odd' for x in range(10)]
2
3['even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd', 'even', 'odd']