アンパック エラーの解決: ディクショナリのキーと値のペアを反復処理する
複数のアンパックされた値を使用してディクショナリを反復処理すると、「値が多すぎます」解凍パターンが反復内の値の数と一致しない場合、「解凍する」エラーが発生する可能性があります。次のコードを考えてみましょう:
<code class="python">first_names = ['foo', 'bar'] last_names = ['gravy', 'snowman'] fields = { 'first_names': first_names, 'last_name': last_names, } for field, possible_values in fields: # error occurs here</code>
フィールドがキーと値のペアを含む辞書であるため、エラーが発生します。 for ループは、キーと値のペアを個別の変数に解凍しようとしますが、割り当ての左側に 2 つの変数 (field と possible_values) が必要です。このエラーを解決するには、辞書項目の反復処理用に特別に設計されたメソッドを使用できます。
Python 3:
Python 3 では、 items() メソッドを使用できます。ディクショナリ内のキーと値のペアに対する反復可能オブジェクトを作成します。各ペアはキーと値を含むタプルです。
<code class="python">for field, possible_values in fields.items(): print(field, possible_values)</code>
Python 2:
Python 2 では、 iteritems() メソッドは項目と同じ目的を果たします。 () は、辞書のキーと値のペアに対する反復子を返します。
<code class="python">for field, possible_values in fields.iteritems(): print field, possible_values</code>
これらのメソッドを利用することで、辞書内のキーと値のペアを効果的に反復し、「値が多すぎて解凍できない」という問題を回避できます。 " エラー。
以上がディクショナリのキーと値のペアを反復処理するときに発生する「展開するには値が多すぎます」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。