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

【Python】タプルが出現するまでリスト内の要素数をカウントする方法

リストAが与えられたとき、このリストにはネストされたタプルが含まれています。ここでの課題は、タプルの要素に到達するまで、リスト内の要素数をカウントすることです。この処理には、Python組み込みの isinstance() 関数を使用します。

isinstance() 関数は2つの引数を受け取ります。第1引数の「object」は判定対象となるオブジェクト、第2引数の「classinfo」はクラス・型、あるいはクラスや型のタプルです。オブジェクトが指定したクラス(またはそのサブクラス)のインスタンスである場合、もしくはタプル内のいずれかの型に一致する場合に True を返し、それ以外の場合は False を返します。

入力と出力の例

入力 : A=[4, 5, 6, 10, 22, 33, (1, 2, 3), 11, 2, 4]
出力 : 6

この例では、リストの先頭から数えて7番目の要素 (1, 2, 3) が最初のタプルです。したがって、タプルより前に存在する要素数は6個となります。

アルゴリズム

ステップ1: 対象となるリストを用意する。
ステップ2: カウンター変数 c を 0 で初期化する。
ステップ3: リストを先頭から順に走査し、各要素がタプルかどうかを判定する。
ステップ4: 要素がタプルでなければカウンターを1増やし、タプルであればループを抜ける。
ステップ5: カウンター c の値を返す。

サンプルコード

# タプルに到達するまでリストの要素をカウントするプログラム
def countelement(M):
    c = 0
    for i in M:
        if isinstance(i, tuple):
            break
        c = c + 1
    return c

# ドライバーコード
A = [4, 5, 6, 10, 22, 33, (1, 2, 3), 11, 2, 4]
print("RESULT ::>", countelement(A))

実行結果

RESULT ::> 6

コードの解説

まずカウンター変数 c を0で初期化します。続いてfor文でリストの各要素を先頭から順に取り出し、isinstance(i, tuple) によってその要素がタプルかどうかを判定します。要素がタプルでなければカウンターを1つ増やして次の要素へ進み、タプルが見つかった時点で break によりループを終了します。最後にカウンターの値を返すことで、タプルより手前にある要素の個数が求まります。

なお、break の後にカウント処理を書いてしまうと、その行は決して実行されず常に0が返されるため注意が必要です。カウントの増加は break より前、かつタプル判定の条件が成立しなかった場合にのみ行うようにしましょう。

  1. Pythonでタプル内の特定要素の出現回数をカウントする方法を徹底解説

    この記事では、ユーザーが入力したタプルの中に、指定した要素が何回出現するかを数えるPythonプログラムを紹介します。初心者にもわかりやすいように、アルゴリズムの手順・サンプルコード・実行結果を順番に解説していきます。 例 入力: A = [10, 20, 30, 40, 10, 100, 80, 10] X = 10 出力: 3 この例では、リスト(タプル)内に「10」が3つ含まれているため、出力は「3」になります。 アルゴリズム 出現回数をカウントする関数 countoccur(A, x) の処理手順は以下の通りです(Aは配列、xは出現回数を数えたい要素)。 ステップ1

  2. Pythonでリストから重複要素を削除する方法を徹底解説

    重複した要素を含むリストが与えられたとき、重複を取り除いた新しいリストを作成するのが本記事のテーマです。初心者の方にも理解しやすいよう、基本的なアルゴリズムの手順から実際のコードまで順を追って解説していきます。 実行例 入力::[2,3,4,3,4,6,78,90] 出力::[2,3,4,6,78,90] アルゴリズム 重複要素を削除するための基本的な手順は以下の通りです。 元となるリストを作成する。 空の新しいリストを用意する。 元のリストの各要素を先頭から順番に走査する。 その要素が新しいリストにまだ存在しないかどうかを判定する。 存在しない場合のみ、新しいリストへ要素を追加する。