Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonプログラムのリストで正と負の数を数える


この記事では、以下に示す問題ステートメントの解決策について学習します。

問題の説明 −反復可能なリストが与えられているので、その中の正と負の数を数えて表示する必要があります。

アプローチ1-反復構成(for)を使用したブルートフォースアプローチ

ここでは、forループを使用してリスト内の各要素を反復処理し、num> =0であるかどうかを確認して、正の数をフィルター処理する必要があります。条件がtrueと評価された場合は、pos_countを増やし、そうでない場合は、neg_countを増やします。

list1 = [1,-2,-4,6,7,-23,45,-0]
pos_count, neg_count = 0, 0
# enhanced for loop  
for num in list1:
   # check for being positive
   if num >= 0:
      pos_count += 1
   else:
      neg_count += 1
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", neg_count)

出力

Positive numbers in the list: 5
Negative numbers in the list: 3

アプローチ2-反復構成を使用したブルートフォースアプローチ(while)

ここでは、forループを使用してリスト内の各要素を反復処理し、num> =0であるかどうかを確認して、正の数をフィルター処理する必要があります。条件がtrueと評価された場合は、pos_countを増やし、そうでない場合は、neg_countを増やします。

list1 = [1,-2,-4,6,7,-23,45,-0]
pos_count, neg_count = 0, 0
num = 0
# while loop
while(num < len(list1)):
   # check
   if list1[num] >= 0:
      pos_count += 1
   else:
      neg_count += 1
   # increment num
   num += 1
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", neg_count)

出力

Positive numbers in the list: 5
Negative numbers in the list: 3
アプローチ3-PythonLambda式の使用

ここでは、正の数と負の数を直接区別できるフィルター式とラムダ式を利用します。

list1 = [1,-2,-4,6,7,-23,45,-0]
neg_count = len(list(filter(lambda x: (x < 0), list1)))
pos_count = len(list(filter(lambda x: (x >= 0), list1)))
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", neg_count)

出力

Positive numbers in the list: 5
Negative numbers in the list: 3

すべての変数はローカルスコープで宣言されており、それらの参照は上の図に示されています。

結論

この記事では、リスト内の正の数と負の数を数える方法を学びました。


  1. 正の数と負の数を再配置するPythonのLambda式

    この記事では、正と負の整数の入力配列を受け取るラムダ式の使用について学習します。 1つは負の数を含み、もう1つは正の数を含む2つの別々の配列を計算します。 ここでは、1つの引数、つまり整数の配列のみを受け入れるRearrange()関数を定義します。この関数は、配列の異なる側で各タイプとマージされた両方の配列を返します。 それでは、コードを見て理解を深めましょう。 例 def Rearrange(arr): # First lambda expression returns a list of negative numbers in arr. # Second lambda express

  2. Pythonを使用して、列単位および行単位の並べ替えられた行列の負の数をカウントしますか?

    このセクションでは、行ごとおよび列ごとに並べ替えられた行列の負の数を最適な解でカウントするPythonプログラムを紹介します。 行ごとおよび列ごとに並べ替えられた配列とは、任意のインデックスの各値が、次の列および次の行のインデックスの値と小さいか等しいことを意味します。 たとえば、以下のマトリックスM M = [[-40, -12, 1, 5], [-20, -2, 5, 15], [-22, -1, 13, 18], [-12, 0, 15, 38]] 上記の行列Mでは、最初の行の最初の列は-40です。これは、同じ行の次の列の値(-12)よりも小さく、同じ列の次の行の値(-20など)