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