展開するには値が多すぎます: ディクショナリの反復を解決する
キーと値のペアを含むディクショナリを反復する場合、値は次のとおりです。リストを使用している場合、コードでキーと値の両方を同時に解凍しようとすると、「解凍するには値が多すぎます」というエラーが発生する可能性があります。
次の例を考慮してください。
<code class="python">first_names = ['foo', 'bar'] last_names = ['gravy', 'snowman'] fields = { 'first_names': first_names, 'last_name': last_names, } </code>
試行するとき次のコードを使用してこのディクショナリを反復するには:
<code class="python">for field, possible_values in fields: # error happens on this line</code>
反復ではキー (フィールド) と値 (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>
追加情報
反復に関するより包括的な情報については、 Python バージョン間の iteritems() と items() の違いを含む辞書については、次のリソースを参照してください:
以上がKey-Value リストを含むディクショナリを反復処理するときに「解凍するには値が多すぎます」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。