キーと値のリストからPython辞書(dict)を作成する方法
キーリストと値リストから辞書を作成する
Pythonでは、キーを格納したリスト(L1)と、それに対応する値を格納したリスト(L2)が別々に用意されている場合でも、いくつかの簡単な方法で1つの辞書オブジェクトにまとめることができます。
ここでは、代表的な2つの方法を紹介します。
方法1:zip()関数とdict()関数を組み合わせる
最もシンプルで一般的なのが、zip()で2つのリストをペア化し、dict()関数で辞書に変換する方法です。
>>> L1 = ['a','b','c','d']
>>> L2 = [1,2,3,4]
>>> d = dict(zip(L1,L2))
>>> d
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
zip(L1, L2)は各リストの要素を順番にペア(タプル)として結合し、dict()がそのペアを「キー: 値」の形式に変換します。コードが短く直感的なため、実務でもよく使われる定番の書き方です。
方法2:辞書内包表記を使う
より柔軟な処理を行いたい場合は、辞書内包表記(dictionary comprehension)を利用する方法もあります。
>>> L1 = ['a','b','c','d']
>>> L2 = [1,2,3,4]
>>> d = {k:v for k,v in zip(L1,L2)}
>>> d
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
この構文はzip()で生成されたペアを1つずつ取り出し、k:vという形式で新しい辞書を組み立てます。値に対して加工や条件分岐を加えたい場合(例:特定の値だけを含めたい場合など)に特に便利です。
補足ポイント
- リストの長さが異なる場合:
zip()は短い方のリストに合わせて処理を打ち切るため、余った要素は無視されます。長さを揃えておくのが安全です。 - 重複するキーがある場合:後から出現した値で上書きされるため注意が必要です。
- Python 3.10以降:
zip(..., strict=True)を指定すると、リストの長さが一致しない場合にエラーを発生させることができます。
まとめ
単純に辞書を作りたいならdict(zip(L1, L2))、要素ごとの加工やフィルタリングが必要なら辞書内包表記を選ぶとよいでしょう。どちらの方法も結果は同じ{'a': 1, 'b': 2, 'c': 3, 'd': 4}となります。
-
Pythonの辞書からすべてのキーをリストとして取得する方法
Pythonの辞書(dict)からすべてのキーをリストとして取得したい場合、最もシンプルな方法は dict.keys() メソッドを使うことです。このメソッドは辞書内のすべてのキーを含むビューオブジェクトを返すため、list() で囲むことで簡単にリストへ変換できます。keys()メソッドを使う例my_dict = {name: TutorialsPoint, time: 15 years, location: India} key_list = list(my_dict.keys()) print(key_list)出力実行すると、次のような結果が得られます。[name, time, loc
-
Pythonでリストから文字列を作成する方法|join()関数の使い方を解説
Pythonのjoin()関数とはPythonには、シーケンス型(リストやタプルなど)の要素を連結して1つの文字列を生成するための組み込みメソッド join() が用意されています。join()は区切り文字(セパレーター)を持つ文字列に対して呼び出し、各要素の間にその区切り文字を挿入しながら要素を連結します。区切り文字が不要な場合は、空文字列()を使って呼び出すことで、要素をそのまま連結した文字列を取得できます。区切り文字なしで連結する例以下の例では、文字1つずつを格納したリストを、空文字列を介して連結しています。>>> lst = [h, e, l, l, o]>&g