Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでタプルを辞書に変換する方法【基本とキー・値の入れ替え】

Pythonでは、dict()関数を使うことで、タプルから辞書オブジェクトを簡単に作成できます。この関数は「タプルのタプル」(ネストされたタプル)を引数として受け取ります。各内側のタプルには、キーと値のペアが含まれている必要があります。

基本的な変換方法

最もシンプルなのは、キーと値のペアを持つタプルをそのままdict()に渡す方法です。

>>> t = ((1, 'a'), (2, 'b'))
>>> dict(t)
{1: 'a', 2: 'b'}

この例では、タプル((1, 'a'), (2, 'b'))の各要素が、それぞれ辞書のキーと値として解釈され、結果として{1: 'a', 2: 'b'}という辞書が生成されます。

キーと値を入れ替えて変換する

元のタプルのキーと値を逆にした辞書を作りたい場合もあります。そのようなときは、ジェネレータ式と組み合わせると便利です。

>>> t = ((1, 'a'), (2, 'b'))
>>> dict((y, x) for x, y in t)
{'a': 1, 'b': 2}

ここで使われている(y, x) for x, y in tは、元のタプルから各ペアを取り出し、要素の順序を反転させた新しいタプルを順次生成するジェネレータ式です。これにより、値がキー、キーが値となった辞書{'a': 1, 'b': 2}が作成されます。

まとめ

  • dict()関数に「キーと値のペアを持つタプルのタプル」を渡すことで、辞書に変換できる。
  • キーと値を入れ替えたい場合は、ジェネレータ式で要素の順序を反転させてからdict()に渡す。

どちらの方法も1行で記述できるため、データの前処理や変換処理の中で非常に実用的です。ぜひ活用してみてください。

  1. 【Python入門】文字のリストを文字列に変換する方法

    Pythonのjoin()メソッドとは Pythonには、リストやタプルなどのシーケンスオブジェクトの要素を連結して1つの文字列を返す、組み込みのjoin()メソッドが用意されています。join()は、呼び出し元の文字列を「区切り文字」として要素間に挿入しながら連結を行います。そのため、区切り文字なしで単純に連結したい場合は、空文字列()に対してjoin()を呼び出します。 基本的な使い方:区切り文字なしで連結する 以下の例では、文字のリスト [h, e, l, l, o] を空文字列で連結し、「hello」という1つの文字列に変換しています。 >>> lst=[h,e,l

  2. Pythonで文字列を辞書(dict)に変換する方法|ast.literal_evalとjson.loadsの使い分け

    Pythonでは、文字列形式で表現された辞書データを実際のdictオブジェクトに変換したい場面がよくあります。主な方法としては、標準ライブラリの ast.literal_eval() を使う方法と、json モジュールを使う方法の2つがあります。それぞれの特徴と使い方を詳しく見ていきましょう。 方法1:ast.literal_eval() を使う ast.literal_eval() は、文字列をPythonの式として安全に評価する関数です。任意のコードを実行できてしまう eval() とは異なり、リテラル構造以外は評価しないため、セキュリティ面でも安心して利用できます。 評価できるのは、文