リストに、あるデータを格納した後に色々を処理をして期待する結果を得る。
このような実装は非常によく使う為、内包表記で書くと、とても楽です。
また、データの量が大きくなると append でリストに放り込む必要がなくなる為、処理速度向上にも貢献してくれます。
-
Python リスト内包表記のすゝめ
Pythonでデータを処理する場合、リストに格納して処理していくってパターンはスゴく多いと思います。 基本的なリストの格納方法は以下のようなものがあります。 # 1 ~ 20 の数字で偶数のみリストに ...
続きを見る
今回はリスト内包表記の応用として、条件付きリスト内包表記のパターンを実装してみました。
例として 1 ~ 10 までの値で奇数であれば odd を 偶数であれば even をリストに格納していくというものです。
""" 1 ~ 10 までの数値で奇数であれば odd 偶数であれば even を リストに格納する """ # 空のリストを作成して、for loopで回した後に格納するパターン l = [] for i in range(1, 11): if i % 2 == 0: l.append("even") else: l.append("odd") print(*l) # 出力結果 even odd even odd even odd even odd even odd # リスト内包表記で書くパターン l = ["even" if i % 2 == 0 else "odd" for i in range(1, 11)] print(*l) # 出力結果 even odd even odd even odd even odd even odd
どちらのパターンでも出力結果が同じである事が確認できました。
空のリストを準備して、for loop で回してリストに格納していく実装でも、データ量が少なければ全く問題ないのですが、6行書く必要があるところを1行で処理できるので便利です。