Python でリストを辞書に変換するのはそれほど難しくありません。
リストを辞書に変換するさまざまな方法を見てみましょう。
はじめに
チュートリアルに入る前に、リストを辞書に変換する例を見てみましょう。 タプルのリスト (各タプルは 2 つの要素で構成されます) または単なる要素のリストになります。 両方の入力を取り、それらを辞書に変換します。
例:
次の例では、タプルのリストを取得して辞書に変換しています。 各タプルの最初の要素をキーとして、2 番目の要素をディクショナリの値として取得しました。
入力: list_one = [(‘a’, ‘A’), (‘b’, ‘B’), (‘c’, ‘C’)]
出力: {‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’}
次の例では、要素のリストを取得し、キーと値として代替要素を持つ辞書に変換しています。 キーとして要素が残っていない場合 (リストの要素数が奇数の場合)、キーに null を指定します。
入力: list_one = [‘a’, ‘A’, ‘b’, ‘B’, ‘c’, ‘C’, ‘d’]
出力:{‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’, ‘d’: なし}
チュートリアルの目的を見てきました。 そして、両方の例をさまざまな方法で説明します。 最初の例から始めましょう。
タプルのリスト – 辞書
タプルのリストを辞書に変換する方法を見てみましょう。 次の手順に従って、コードの記述を試すことができます。
- 上記の例のように、タプルのリストをダミー データで初期化します (リスト内の各タプルに正確に 2 つの要素があることを確認してください)。
- タプルのリストを dict メソッドに渡すと、結果が新しい変数に格納されます。
- 以上で、タプルのリストを 1 行のコードで辞書に変換できました。
# list of tuples list_of_tuples = [('a', 'A'), ('b', 'B'), ('c', 'C')] # converting to dictionary list_of_tuples_dict = dict(list_of_tuples) # printing the result dict print(list_of_tuples_dict)
上記のプログラム出力を実行してテストできます。 例に示すように、結果が得られます。
リスト – 辞書
タプルのリストを辞書に変換する方法を見てきましたが、これは Python では簡単なことです。 このセクションでは、プレーンなリストを辞書に変換する方法を見ていきます。
より明確にするために、チュートリアルの最初のセクションの 2 番目の例を参照してください。
次の手順に従って、2 番目の例のコードを記述します。
値を持たない要素 (奇数の要素を含むリスト) のデフォルト値を None に設定しました。 そのためには、モジュール itertools の zip_longest というメソッドを使用する必要があります。
- モジュール itertools をインポートし、例に示されている奇数の要素でリストを初期化します。
- zip_longest メソッドでキーと値のペアの繰り返しを避けるために、リストを iterable に変換します。
- ここで、イテラブルをメソッド zip_longest に渡し、fillvalue を None として渡します。 zip オブジェクトを返します。
- 2 つのイテラブルからキーと値を取得するため、イテラブルを 2 回渡す必要があります。 この場合、キーと値の両方が同じ iterable にあります。 そのため、fillvalue の前に 2 回渡す必要があります。
- dict メソッドを使用して、オブジェクトを Python 辞書に変換します。
- 結果を印刷します。
# importing the module import itertools # plain list with odd number of elements plain_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd'] # converting it to iterable to avoid repetition plain_list_iter = iter(plain_list) # converting the plain_list to dict plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None) # convert the zip_longest object to dict using `dict` plain_list_dict = dict(plain_list_dict_object) # print it print(plain_list_dict)
fillvalue には任意の値を指定できます。 それを使っていろいろ試してみてください。 そして、コードを実行して、例で述べたとおりの正確な出力が得られているかどうかを確認します。
結論
リストを辞書に変換して楽しんでいただければ幸いです。 次のチュートリアルでお会いしましょう。
次に、Python でリストをフラット化する方法を学びます。
ハッピーコーディング🙂
記事を読んでよかったですか? 世界と共有してみませんか?