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

Pythonでタプル内のリストの個数を取得する方法

Pythonのタプルは順序を持ち、変更不可能(イミュータブル)なデータ構造です。しかし、その要素としてリストを含めることも可能です。ここでは、リストで構成されたタプルが与えられたとき、その中にいくつのリストが含まれているかを調べる方法を2つ紹介します。

len()関数を使う方法

最もシンプルなのは、組み込みのlen()関数を使う方法です。len()関数はタプルの要素数を返すため、すべての要素がリストであれば、その戻り値がそのままリストの個数になります。

コード例

tupA = (['a', 'b', 'x'], [21,19])
tupB = (['n', 'm'], ['z','y', 'x'], [3,7,89])

print("tupA に含まれるリストの数 :\n" , len(tupA))
print("tupB に含まれるリストの数 :\n" , len(tupB))

実行結果

tupA に含まれるリストの数 :
2
tupB に含まれるリストの数 :
3

ユーザー定義関数(UDF)を使う方法

同じ処理を繰り返し実行したい場合は、ユーザー定義関数を作成しておくと便利です。引数として渡されたオブジェクトがタプルかどうかをisinstance()で判定し、タプルであればlen()関数を使ってリストの個数を返します。これにより、意図しない型のデータが渡された場合にも安全に対処できます。

コード例

tupA = (['a', 'b', 'x'], [21,19])
tupB = (['n', 'm'], ['z','y', 'x'], [3,7,89])

def getcount(tupl):
    if isinstance(tupl, tuple):
        return len(tupl)
    else:
        pass

print("tupA に含まれるリストの数 :\n" , getcount(tupA))
print("tupB に含まれるリストの数 :\n" , getcount(tupB))

実行結果

tupA に含まれるリストの数 :
2
tupB に含まれるリストの数 :
3

補足:リスト型の要素だけを厳密に数えたい場合

上記の方法は「タプルの全要素がリストである」ことを前提としています。もしタプルの中にリスト以外の要素(文字列や数値など)が混在している場合は、isinstance()を使ってリスト型の要素だけをカウントするのが確実です。

tupC = (['a', 'b'], 'text', [1, 2, 3], 42)

count = sum(1 for item in tupC if isinstance(item, list))
print("tupC に含まれるリストの数 :", count)  # 結果: 2

用途に応じて、シンプルなlen()関数か、型判定を組み合わせた方法を選択してください。

  1. Pythonでリスト内の最大値を見つける方法|sort()とmax()の2つのアプローチ

    この記事では、リストの中から最大の数値を見つけるための解決策とアプローチについて詳しく解説します。問題の概要数値のリストが与えられたとき、その中から最大の要素を見つけ出す必要があります。Pythonでは、主に以下の2つの方法でこれを実現できます。ソート(並べ替え)を利用する方法組み込み関数 max() を利用する方法アプローチ1:sort() 関数を使う方法リストを sort() メソッドで昇順に並べ替えると、リストの最後の要素(インデックス -1)が必ず最大値になります。サンプルコードlist1 = [18, 65, 78, 89, 90] list1.sort() # メイン処理 prin

  2. Pythonで数の約数(因数)を見つける方法をわかりやすく解説

    基本的な考え方ある数の約数(因数)を見つけるには、1からその数自身までのすべての整数に対して、割り切れるかどうかを順番に確認するループを実行します。Pythonの剰余演算子「%」を使い、割った余りが0になれば、その数は約数であると判断できます。サンプルコードnum = int(input(enter a number)) factors = [] for i in range(1, num + 1): if num % i == 0: factors.append(i) print(Factors of {} = {}.format(num, factors))この