Python で複数の変数に for ループを使用する

Vaibhhav Khetarpal 2023年1月30日
  1. Python の辞書で複数の割り当てに for ループを使用する
  2. Python のリスト内の複数の割り当てに enumerate() 関数を使用する
  3. Python のタプルまたはリストの複数の割り当てには zip() 関数を使用する
Python で複数の変数に for ループを使用する

for ループは、リストからタプル、辞書に至るまで、任意のシーケンスを反復処理するために使用されます。文字列を反復処理することもできます。この記事では、Python で複数の変数に for ループを使用する方法について説明します。

Python の for ループでの複数の変数の使用は、リストまたは辞書に適用できますが、一般的なエラーでは機能しません。同じコード行で同時に変数を複数割り当てることは、反復可能なアンパックと呼ばれます。

Python の辞書で複数の割り当てに for ループを使用する

辞書を利用して、データ値をキーと値のペアで格納できます。簡単に言うと、辞書は、英語の辞書を使用して 1つの単語をその定義にマップする方法と同様に、ある値を別の値にマップします。

ここでは、指定された Python ディクショナリで items() メソッドを使用します。この関数は、すべての辞書キーとその値を含むリストとして出力を提供します。

次のコードは、辞書内の複数の割り当てに for ループを使用しています。

dict1 = {1: "Bitcoin", 2: "Ethereum"}
for key, value in dict1.items():
    print(f"Key {key} has value {value}")

出力:

Key 1 has value Bitcoin
Key 2 has value Ethereum

上記のコードでは、f-strings メソッドと print 関数を使用して、for ループを実装し、キーと値のペアを表示しています。

Python のリスト内の複数の割り当てに enumerate() 関数を使用する

enumerate() 関数は、コレクションを列挙型オブジェクトにして返します。このメソッドは、たとえば 2つのリストがあり、インデックスを使用して両方を同時に処理し、もう一方のリストで対応する要素を探す場合に使用できます。

次のコードは、リスト内の複数の割り当てに enumerate() 関数を使用しています。

coins = ["Bitcoin", "Ethereum", "Cardano"]
prices = [48000, 2585, 2]
for i, coin in enumerate(coins):
    price = prices[i]
    print(f"${price} for 1 {coin}")

出力:

$48000 for 1 Bitcoin
$2585 for 1 Ethereum
$2 for 1 Cardano

ここでは、coinsprices の 2つのリストを取得し、両方のリストで同時に割り当てを行います。enumerate オブジェクトはインデックスを提供します。これは優れており、2つのリストを同時にループすることで達成可能なタスクになります。

Python のタプルまたはリストの複数の割り当てには zip() 関数を使用する

zip() 関数は Python で提供される組み込み関数であり、2つ以上の指定された反復可能オブジェクトと相互作用して要素を結合する反復子を作成するために使用されます。

zip() 関数は並列対話に使用でき、一度に複数の変数を解凍することもできます。次のコードは、タプルまたはリスト内の複数の割り当てに zip() 関数を使用しています。

coins = ["Bitcoin", "Ethereum", "Cardano"]
prices = [48000, 2585, 2]
for coin, price in zip(coins, prices):
    print(f"${price} for 1 {coin}")

出力:

$48000 for 1 Bitcoin
$2585 for 1 Ethereum
$2 for 1 Cardano

ここで、zip 関数は 2つのリストを受け取り、ループするときに両方のリストの対応する要素のタプルを提供する反復可能オブジェクトを提供します。

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

関連記事 - Python Loop