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

Pythonで行列(リストのリスト)を辞書に変換する方法

Pythonでは、行列(リストの中にリストが入ったネストされた構造)を辞書形式に変換したい場面があります。たとえば、各行に行番号をキーとして割り当てて管理したい場合などです。こうした変換は、辞書内包表記(dictionary comprehension)を使えば、わずか1行のコードで簡潔に実現できます。

サンプルコード

以下は、行列を辞書に変換する具体的な例です。

my_list = [[71, 26, 35], [65, 56, 37], [89, 96, 99]]

print("The list is :")
print(my_list)

my_result = {my_index + 1 : my_list[my_index] for my_index in range(len(my_list))}

print("The result is:")
print(my_result)

実行結果

The list is :
[[71, 26, 35], [65, 56, 37], [89, 96, 99]]
The result is:
{1: [71, 26, 35], 2: [65, 56, 37], 3: [89, 96, 99]}

コードの解説

  • まず、複数のリストを要素として持つネストされたリスト(行列)を定義し、コンソールに表示します。

  • 次に、辞書内包表記を使ってリストを反復処理し、range(len(my_list))で取得したインデックスをもとに、各行の要素へアクセスします。

  • キーには my_index + 1 を指定することで、0ではなく1から始まる行番号が割り当てられます。値には対応する行(リスト)がそのまま格納されます。

  • 生成された辞書は変数 my_result に代入され、最後にコンソールへ出力されます。

enumerate()を使ったよりPythonicな書き方

インデックスと要素を同時に扱いたい場合は、enumerate() 関数を使うとさらに読みやすいコードになります。

my_result = {index + 1: row for index, row in enumerate(my_list)}
print(my_result)

この方法なら、range(len(...)) のような冗長な記述が不要になり、意図も明確になります。どちらの方法でも出力結果は同じです。

まとめ

行列を辞書に変換する際は、辞書内包表記が最もシンプルで効率的な手段です。キーの開始番号や値の加工を自由にカスタマイズできるため、データ整形や前処理の場面で幅広く活用できます。

  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() を使うことで、簡単にリストオブジェクトへ変換できます。 実際のコード例 以下は、辞書から各ビューオブジェクトを取