Pythonでリスト内の負の数を出力するプログラム
この記事では、与えられた問題を解決するためのアプローチと具体的な解法について詳しく解説します。
問題の概要
リスト(イテラブル)が与えられたとき、そのリストに含まれるすべての負の数を出力する必要があります。
ここでは、この問題に対する3つの異なるアプローチを順番に見ていきましょう。
アプローチ1:拡張forループを使う方法
最も基本的な方法は、forループでリストの各要素を順番に取り出し、if文で負の数かどうかを判定して出力するやり方です。初心者にも直感的に理解しやすいコードです。
サンプルコード
list1 = [-11,23,-45,23,-64,-22,-11,24]
# 反復処理
for num in list1:
# 負の数かどうかを判定
if num < 0:
print(num, end = " ")実行結果
-11 -45 -64 -22 -11
アプローチ2:filter関数とlambda式を使う方法
組み込み関数のfilter()とlambda式を組み合わせると、負の数だけを効率的に抽出できます。条件を満たす要素のみを取り出す、関数型プログラミングらしい簡潔な書き方です。
サンプルコード
list1 = [-11,23,-45,23,-64,-22,-11,24]
# lambda式による抽出
no = list(filter(lambda x: (x < 0), list1))
print("リスト内の負の数:", no)実行結果
リスト内の負の数: [-11 -45 -64 -22 -11]
アプローチ3:リスト内包表記を使う方法
リスト内包表記を使えば、たった1行で新しいリストとして負の数を抽出できます。Pythonらしい読みやすく簡潔なコードを実現できるのが特徴です。
サンプルコード
list1 = [-11,23,-45,23,-64,-22,-11,24]
# リスト内包表記
nos = [num for num in list1 if num < 0]
print("リスト内の負の数:", nos)実行結果
リスト内の負の数: [-11 -45 -64 -22 -11]
まとめ
この記事では、リストから負の数を出力する3つの方法(拡張forループ、filter+lambda式、リスト内包表記)を紹介しました。forループは処理の流れが分かりやすく初心者向け、filterとlambdaは関数型的な記述、リスト内包表記は最も簡潔という特徴があります。コードの可読性や目的に応じて、適切な方法を選んで使いこなしましょう。
-
指定した範囲内のすべての素数を出力するPythonプログラム
この記事では、以下の問題文に対する解決方法について学んでいきます。 問題文 ある区間が与えられたとき、その範囲内に含まれるすべての素数を求めて出力する必要があります。 ここでは、素数の基本的な定義に基づいた全探索(ブルートフォース)によるアプローチを紹介します。素数とは、「1とその数自身のみを約数として持ち、それ以外の数を約数に持たない自然数」のことです。 この定義に基づき、各数値が素数の条件を満たしているかどうかを判定し、条件が真(True)と評価されるたびに出力処理を行います。 それでは、実際の実装例を見ていきましょう。 実装例 start = 1 end = 37 for val in
-
Pythonでリストを出力する方法|インデックスの基本から実践的な出力テクニックまで
Pythonのリストとは? Pythonのリスト(list)は、複数の要素をひとつにまとめて管理できるデータ型です。リスト内の各要素は順序を持って格納されており、それぞれの位置(インデックス)を指定することで、任意の要素にアクセスできます。 インデックスは0から始まる リストのインデックスは0から始まる点に注意が必要です。つまり、最初の要素が list[0]、2番目の要素が list[1]、3番目の要素が list[2] に対応します。 例えば、以下のようなリストを考えてみましょう。 numbers = [10, 20, 50, 40] print(numbers[2]) # 出力結果:5