辞書を反復処理するときは、正しい構文と正しい構文を認識することが重要です。方法。 「展開するには値が多すぎます」というエラーは、反復可能で使用可能な値を超える値を展開しようとすると発生します。
指定されたコード スニペット内:
first_names = ['foo', 'bar'] last_names = ['gravy', 'snowman'] fields = { 'first_names': first_names, 'last_name': last_names, } for field, possible_values in fields: # error happens on this line
エラーが発生するのは、ディクショナリのキーを反復処理することによって返された 1 つのタプルから 2 つの値 (field と possible_values) を解凍しようとしています。これを修正するには、Python のバージョンに応じて 2 つのオプションがあります:
Python 3 では、 items() メソッドを使用して、辞書のキーと値の両方を反復処理します。
<code class="python">for field, possible_values in fields.items(): print(field, possible_values)</code>
Python 2 では、items() の代わりに iteritems() メソッドを使用します。
<code class="python">for field, possible_values in fields.iteritems(): print field, possible_values</code>
items() と iteritems() の両方キーと値のペアのシーケンスを返し、ループ内で適切に解凍できるようにします。
あるいは、辞書のキーまたは値のみが必要な場合は、それらを直接反復処理できます。
# Iterate over keys for field in fields.keys(): print(field) # Iterate over values for possible_values in fields.values(): print(possible_values)
以上がPython の辞書反復での「解凍するには値が多すぎます」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。