Python | ‘list’ object has no attribute ‘isdigit’ エラーの原因と解決策

2023-02-11Python エラー,Python

Python | 'list’ object has no attribute 'isdigit’ エラーの原因と解決策

Pythonの実行時に発生するエラー「object has no attribute 'isdigit’」の原因と解決策について紹介しています。

AttributeError: 'list’ object has no attribute 'isdigit’
属性エラー:listオブジェクトには属性「isdigit」がありません。

確認環境

Windows11 ローカル
Python python-3.11.1

'list’ object has no attribute 'isdigit’ エラーの原因

「’list’ object has no attribute 'isdigit’」というPythonの実行エラーはリスト(配列)に対してisdigit()メソッドを実行しようとした発生するエラーです。

主に以下の原因が考えられます。

  • isdigit()メソッドを実行しようとしている変数名が間違っている
  • リストを反復させずにisdigit()メソッドを実行しようとしている

例えば、以下のコードのようにリスト(配列)に対してisdigit()メソッドを実行しようする場合、このエラーが出力されます。

data = ['1', '2', '3']
if data.isdigit():
	print('true')
else:
	print('false')

# AttributeError: 'list' object has no attribute 'isdigit'

'list’ object has no attribute 'isdigit’ エラーの解決策

「’list’ object has no attribute 'isdigit’」エラーの問題を解決するには以下の方法が考えられます。

isdigit()メソッドを実行しようする変数を文字列型のものに修正する。

str = '123'
if str.isdigit():
	print('true')
else:
	print('false')

# ture

リスト(配列)は正しい場合、配列を反復処理して、値に対してisdigit()メソッドを実行する。

data = ['1', '2', '3']
for i in data:
	if i.isdigit():
		print('true')
	else:
		print('false')

# ture true true