リストに、あるデータを格納した後に色々を処理をして期待する結果を得る。
このような実装は非常によく使う為、内包表記で書くと、とても楽です。
また、データの量が大きくなると 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行で処理できるので便利です。