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

Pythonでタプルのリストを辞書に変換する方法を解説

Pythonでは、キーと値のペアを持つタプルのリストを、簡単に辞書(dict)へ変換できます。本記事では、setdefault()メソッドやdict()コンストラクタを使った変換方法を、具体例とともにわかりやすく解説します。

変換のイメージ

まずは、どのような変換が行われるのかを見てみましょう。タプルのリストの各要素の第1引数が辞書の「キー」に、第2引数が「値」に対応します。

入力:
   [("Adwaita", 5), ("Aadrika", 5), ("Babai", 37), ("Mona", 7), ("Sanj", 25), ("Sakya", 30)]
出力:
   {'Adwaita': 5, 'Aadrika': 5, 'Babai': 37, 'Mona': 7, 'Sanj': 25, 'Sakya': 30}

アルゴリズムの手順

ステップ1:キーと値のペアを持つタプルのリストを用意する。
ステップ2:各タプルの第1要素をキー、第2要素を値として扱う。
ステップ3:setdefault(key, value)は指定したキーを検索し、その値を返す。
          キーが存在しない場合は、新しいキーと値を辞書に追加する。
ステップ4:append関数などを使って、値を順次辞書へ追加していく。

方法1:dict()コンストラクタを使う(最もシンプル)

実は、タプルのリストをそのままdict()に渡すだけで変換が完了します。これが最も簡潔で推奨される方法です。

# Pythonコード:リストから辞書への変換
def listtodict(A, di):
    di = dict(A)
    return di

# 実行コード
A = [("Adwaita", 5), ("Aadrika", 5), ("Babai", 37), ("Mona", 7), ("Sanj", 25), ("Sakya", 30)]
di = {}
print("The Dictionary Is ::>", listtodict(A, di))

実行結果

The Dictionary Is ::> {'Adwaita': 5, 'Aadrika': 5, 'Babai': 37, 'Mona': 7, 'Sanj': 25, 'Sakya': 30}

方法2:setdefault()メソッドを使う

setdefault()メソッドは、指定したキーが辞書に存在すればその値を返し、存在しなければ新しいキーとして値を登録します。この性質を利用して、ループ処理で少しずつ辞書を組み立てることも可能です。

def listtodict_setdefault(A):
    di = {}
    for key, value in A:
        di.setdefault(key, value)
    return di

A = [("Adwaita", 5), ("Aadrika", 5), ("Babai", 37), ("Mona", 7), ("Sanj", 25), ("Sakya", 30)]
print(listtodict_setdefault(A))
# {'Adwaita': 5, 'Aadrika': 5, 'Babai': 37, 'Mona': 7, 'Sanj': 25, 'Sakya': 30}

方法3:辞書内包表記を使う(モダンな書き方)

Pythonらしい書き方としては、辞書内包表記も便利です。1行で簡潔に記述でき、可読性も高いのが特徴です。

A = [("Adwaita", 5), ("Aadrika", 5), ("Babai", 37), ("Mona", 7), ("Sanj", 25), ("Sakya", 30)]
di = {key: value for key, value in A}
print(di)
# {'Adwaita': 5, 'Aadrika': 5, 'Babai': 37, 'Mona': 7, 'Sanj': 25, 'Sakya': 30}

まとめ

  • 単純な変換ならdict()コンストラクタにリストを渡すだけでOK。
  • 既存の辞書に追記しながら変換したい場合はsetdefault()が有効。
  • 可読性と柔軟性を重視するなら辞書内包表記がおすすめ。

用途に応じて使い分けることで、より効率的で読みやすいPythonコードを書くことができます。

  1. Pythonで文字のリストを文字列に変換する方法を解説

    Pythonでは、リスト内の個々の要素をひとつの文字列にまとめたい場面がよくあります。たとえば、データを保存したり送信したりする際に必要となるシリアライズ(直列化)の処理では、このような変換が非常に役立ちます。具体的には、次のような変換を指します。[h, e, l, l, o, , w, o, r, l, d] → hello worldjoinメソッドを使った変換Pythonには、このような変換を実現するためのjoin()メソッドが標準で用意されています。joinメソッドは、区切り文字(デリミタ)として使う文字列に対して呼び出し、引数に渡したリストの各要素を連結します。今回は各文字をつなげ

  2. 【初心者向け】Pythonの辞書(dict)をリストに変換する3つの方法

    Pythonの辞書をリストに変換するには? Pythonの辞書(dict)クラスには、リストへの変換に便利なメソッドが3つ用意されています。それぞれitems()、keys()、values()で、以下のようなビューオブジェクトを返します。 items():キーと値のペア(タプル)で構成されるビューオブジェクト keys():キーのみで構成されるビューオブジェクト values():値のみで構成されるビューオブジェクト これらのビューオブジェクトは、組み込み関数 list() を使うことで、簡単にリストオブジェクトへ変換できます。 実際のコード例 以下は、辞書から各ビューオブジェクトを取