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

リスト内の偶数と奇数をカウントするPythonプログラム


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

問題の説明 −リストが与えられたので、リスト内の偶数と奇数を数える必要があります。

以下で説明する3つの方法があります-

アプローチ1-力ずくのアプローチを使用する

list1 = [21,3,4,6,33,2,3,1,3,76]
even_count, odd_count = 0, 0
# enhanced for loop
for num in list1:
   #even numbers
   if num % 2 == 0:
      even_count += 1
   #odd numbers
   else:
      odd_count += 1
print("Even numbers available in the list: ", even_count)
print("Odd numbers available in the list: ", odd_count)

出力

Even numbers available in the list: 4
Odd numbers available in the list: 6

アプローチ2-filter()とラムダ式の使用

list1 = [21,3,4,6,33,2,3,1,3,76]
#odd numbers
odd_count = len(list(filter(lambda x: (x%2 != 0) , list1)))
#even numbers
even_count = len(list(filter(lambda x: (x%2 == 0) , list1)))
print("Even numbers available in the list: ", even_count)
print("Odd numbers available in the list: ", odd_count)

出力

Even numbers available in the list: 4
Odd numbers available in the list: 6

アプローチ3-リスト内包表記の使用

list1 = [21,3,4,6,33,2,3,1,3,76]
#copy of list elements which are odd in a new list and calculating
the length on new list
only_odd = [num for num in list1 if num % 2 == 1]
odd_count = len(only_odd)
print("Even numbers available in the list: ", len(list1) -
odd_count)
print("Odd numbers available in the list: ", odd_count)

出力

Even numbers available in the list: 4
Odd numbers available in the list: 6

結論

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


  1. 奇数桁と偶数桁の合計の差のためのPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −整数の場合、奇数桁の合計と偶数桁の合計の差が0であるかどうかを計算する必要があります。 ブルートフォースアプローチでは、数値のすべての偶数桁と奇数桁の合計を計算し、それらを減算して答えを計算します。 計算時間を短縮するために、精神数学の概念を使用します。 上記の制約は、数値が11で割り切れる場合にのみ当てはまります。したがって、以下の実装では、数値の11で割り切れる可能性を確認します。 ここで、複雑さはO(n)から、分割可能性と比較に関係する一定の時間に減少します。 それでは

  2. 除数の数が偶数か奇数かをチェックするPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −数値「n」を指定して、除数の総数が偶数または奇数であることを確認します。 このアプローチでは、すべての除数を見つけて、除数の数が偶数または奇数であることを確認します。 実装は以下のとおりです- 例 import math def countDivisors(n) :    count = 0    # calculating all the divisors    root=int(math.sqrt(n))+2 &nbs