Pythonでタプルから辞書を作成する方法:zip()とdict()の使い方を解説
はじめに
Pythonでは、キー用と値用の2つのタプルを組み合わせて、簡単に辞書(dict)オブジェクトを作成できます。代表的な方法は次の2つです。
zip()関数とdict()関数を組み合わせる方法- 辞書内包表記(ディクショナリ・コンプリヘンション)を使う方法
方法1:zip()関数とdict()関数を使う
zip()関数は、2つのタプルから対応する要素同士をペアにしたイテラブル(反復可能オブジェクト)を生成します。この結果をdict()関数に渡すことで、辞書オブジェクトが完成します。
>>> T1 = ('a', 'b', 'c', 'd')
>>> T2 = (1, 2, 3, 4)
>>> d = dict(zip(T1, T2))
>>> d
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
なお、dict((x, y) for x, y in zip(T1, T2)) のようにジェネレータ式を介して書くことも可能ですが、zip()の結果はそのままdict()に渡せるため、上記のように記述する方が簡潔で読みやすくなります。
方法2:辞書内包表記を使う
辞書内包表記を利用しても、2つのタプルから辞書を構築できます。処理の中で条件分岐や変換を加えたい場合に特に便利です。
>>> d = {k: v for (k, v) in zip(T1, T2)}
>>> d
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
補足:zip()の動作について
zip(T1, T2)は、各タプルから順番に要素を取り出し、('a', 1)、('b', 2)のようなペアを生成します。2つのタプルの要素数が異なる場合は、短い方の長さに合わせて処理が終了する点に注意してください。
まとめ
2つのタプルから辞書を作成するなら、dict(zip(キーのタプル, 値のタプル))が最もシンプルで推奨される方法です。より柔軟な処理を行いたい場合は、辞書内包表記を活用するとよいでしょう。
-
Python関数からタプルを返す方法をわかりやすく解説
Pythonでは、関数から複数の値を一度に返したい場合にタプルを活用できます。タプルを使えば、文字列や数値など異なる型の値をまとめて1つの戻り値として扱えるため、非常に便利です。ここでは、実際にタプルを返す関数を定義し、その動作を確認してみましょう。コード例def foo(): str = tutorialspoint x = 30 return (str, x) print(foo())この関数 foo() は、文字列 tutorialspoint と整数 30 を括弧で囲んでタプルとして返しています。呼び出し側では、このタプルを受け取ってそのまま表示できます。実行
-
Python関数で辞書を返す方法とは?基本の書き方とサンプルコード
Pythonでは、関数から辞書(dict)を返す方法がいくつかあります。ここでは、最も基本的なパターンを中心に、具体的なサンプルコードとともに分かりやすく解説します。 基本の方法:dict()で辞書を作成してreturnする まずは、関数内でdict()コンストラクタを使って空の辞書を生成し、キーと値を追加したうえでreturn文で返す方法です。 # この関数は辞書を返します def foo(): d = dict() d[str] = Tutorialspoint d[x] = 50 return d print(foo()) 実行結果 {x: 50,