【Python】リスト(list)内包表記におけるifやif elseなどの使い分け

【Python】リスト(list)内包表記におけるifやif elseなどの使い分け

公開: 更新:



Pythonのリスト内包表記でifとforを使いlistから要素を抽出する方法

Pythonのリスト内包表記でifを使用すると、元のlistやイテラブルオブジェクトから特定の条件を満たす要素だけを抽出して、新しいlistを作成できます。構文は[ for 要素 in イテラブル if 条件式]です。この形式ではforループで要素を順に取り出し、if文の条件式が真(True)の場合のみ、式を適用した結果が新しいlistに追加されます。

【サンプルコード1】
# 0から9までの数値の中から偶数だけを抽出するlist内包表記
even_numbers = [num for num in range(10) if num % 2 == 0]
print(even_numbers)
【実行結果】
[0, 2, 4, 6, 8]
行番号 詳細説明
1行目 range(10)の各要素numについて、num % 2 == 0が真の場合のみnumを新しいリストに追加
2行目 作成したリストeven_numbersを出力
【サンプルコード2】
# 文字列のリストから長さが3文字より大きいものだけを抽出するlist内包表記
words = ["apple", "banana", "cherry", "date", "fig"]
long_words = [word for word in words if len(word) > 3]
print(long_words)
【実行結果】
['apple', 'banana', 'cherry', 'date']
行番号 詳細説明
1行目 比較対象となる文字列のリストwordsを定義
2行目 wordsの各要素wordについて、len(word) > 3が真の場合のみwordを新しいリストに追加
3行目 作成したリストlong_wordsを出力

【PR】『Python』を学べる企業・個人向けのプログラミングコース

Pythonのリスト内包表記でif elseとforを使いlist要素を条件分岐する方法

Pythonのリスト内包表記ではif elseを使用して、条件に応じて異なる値をlistの要素として追加できます。構文は[真の場合の式 if 条件式 else 偽の場合の式 for 要素 in イテラブル]です。ifのみの構文と異なり、if elseの部分がforループより前に記述される点に注意してください。

【サンプルコード1】
# 0から9までの数値について、偶数ならそのまま、奇数なら 'odd' という文字列にするlist内包表記
number_labels = [num if num % 2 == 0 else 'odd' for num in range(10)]
print(number_labels)
【実行結果】
[0, 'odd', 2, 'odd', 4, 'odd', 6, 'odd', 8, 'odd']
行番号 詳細説明
1行目 range(10)の各要素numについて、偶数ならnum、奇数なら'odd'を新しいリストに追加
2行目 作成したリストnumber_labelsを出力
【サンプルコード2】
# 点数リストについて、60点以上なら 'Pass'、未満なら 'Fail' とするlist内包表記
scores = [85, 55, 92, 48, 70]
results = ['Pass' if score >= 60 else 'Fail' for score in scores]
print(results)
【実行結果】
['Pass', 'Fail', 'Pass', 'Fail', 'Pass']
行番号 詳細説明
1行目 判定対象となる点数のリストscoresを定義
2行目 scoresの各要素scoreについて、60以上なら'Pass'、未満なら'Fail'を新しいリストに追加
3行目 作成したリストresultsを出力

ifのみを使用するリスト内包表記は、条件に合わない要素を除外するフィルタリングの機能を提供する一方、if elseを使用する構文は、条件に基づいて要素の値を変換するマッピングの機能を提供します。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する