Python3 reports TypeError: '***' object is not iterable.
まず、エラーメッセージの "TypeError: '***' object is not iterable" を見てください。
まず、イテレーションとは何かを理解する。
イテレータ
イテレーションはPythonの最も強力な機能の1つであり、コレクション要素にアクセスする方法である。
イテレータは、探索の位置を記憶するオブジェクトです。
イテレータオブジェクトは、コレクションの最初の要素から、すべての要素にアクセスするまでアクセスされます。イテレータは前方にしか進めず、後方には進めません。
イテレータには、基本的に2つのメソッドがあります。 iter() と next() .
文字列、リスト、タプルオブジェクトは、イテレータを作成するために使用することができます。
一例として
>>> a = [1,2,3,4,5,6]
>>> it = iter(a) # Create iterative object
>>> print(next(it)) # Output the next element of the iterator
1
>>> print(next(it)) # Next element of iterator
2
>>> print(next(it)) # next element of iterator
3
>>> a = [1,2,3,4,5,6]
>>> it = iter(a) # Create iterative object
>>> for i in it: # Iterator objects can be traversed using the regular for statement.
... print(i,end=" ") # end Output to the same line
...
1 2 3 4 5 6
イテレータを作成する
クラスをイテレータとして使用するには、クラス内に __iter__() と __next__() の2つのメソッドを実装する必要があります。
オブジェクト指向プログラミングについて既にご存知の方は、クラスにはコンストラクタがあることをご存知だと思いますが、Pythonのコンストラクタは__init__()で、オブジェクトが初期化されるときに実行されるものです。
iter__() メソッドは、__next__() メソッドを実装した特別なイテレータオブジェクトを返し、StopIteration 例外で反復処理の完了をマークします。
__next__() メソッド (Python 2 では next()) は、次のイテレータオブジェクトを返します。
1から始まり1ずつ増加する数値を返すイテレータを作成します。
例として
class My: # class Define an object
def __iter__(self):
self.a = 1
return self
def __next__(self):
x = self.a
self.a += 1
return x
ass = My()
myiter = iter(ass)
for i in range(5):
print(next(myiter))
# The above code runs as follows.
1
2
3
4
5
ということになる。
上で報告されたエラーは、定義した型のエラーである必要があります。ステートメントの内容を確認し、特に iter()とnext()です。
関連
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】PyGameで表示画面を最大化する方法は?
-
[解決済み】系列を<クラス 'int'`>に変換できない
-
[解決済み] python はモジュールをインポートできるのに pytest はできない
-
[解決済み] pandas dataframe インデックスのソート中に "TypeError: 'DataFrame' objects are mutable, therefore they cannot be hashed" が発生する。
-
[解決済み] AttributeError: モジュール 'seaborn' には 'histplot' という属性がありません。
-
[解決済み] PEP 8 では、関数の引数で演算子の周りに空白を入れる必要がありますか?
-
[解決済み] ImportError: cbookという名前をインポートできません。
-
pip install MySQL-python reports "EnvironmentError: mysql_config not found" (環境エラー:mysql_configが見つかりません。
-
UnsupportedOperation: 読み取れません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ZeroDivisionErrorの取得:Pythonのfloat除算
-
[解決済み】`Fatal Python error.Python'とは何ですか?PyThreadState_Get: no current thread` とはどういう意味ですか?
-
[解決済み] インデックスの配列を1-hotエンコードされたnumpy配列に変換します。
-
[解決済み] pip/easy_install の失敗: プロセスの作成に失敗しました。
-
[解決済み] Pythonはショートカットに対応していますか?
-
[解決済み] 1次元numpy配列のためのPythonメディアンフィルタ
-
[解決済み] RDD のインスタンスが必要だが、クラス 'pyspark.rdd.PipelinedRDD' が返された。
-
[解決済み] 値でリストをグループ化する
-
[解決済み] Pylintのエラーは隠します。
-
[解決済み] Visual Studio Codeのシンタックスハイライトが機能しない