Key-Value リストを含むディクショナリを反復処理するときに「解凍するには値が多すぎます」を解決するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-20 19:23:30
オリジナル
723 人が閲覧しました

How to Resolve

展開するには値が多すぎます: ディクショナリの反復を解決する

キーと値のペアを含むディクショナリを反復する場合、値は次のとおりです。リストを使用している場合、コードでキーと値の両方を同時に解凍しようとすると、「解凍するには値が多すぎます」というエラーが発生する可能性があります。

次の例を考慮してください。

<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() の違いを含む辞書については、次のリソースを参照してください:

  • [Python のループ手法](https://www.digitalocean.com/) Community/tutorials/how-to-loop-through-dictionaries-in-python)
  • [Python での辞書の反復](https://www.pythonforbeginners.com/basics/python-dictionary-iteration)
  • [Python 3 Dict iteritems() - 辞書の反復処理](https://www.tutorialspoint.com/python/python_dictionary_iteritems.htm)

以上がKey-Value リストを含むディクショナリを反復処理するときに「解凍するには値が多すぎます」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!