この記事では、Pythonでリストを辞書に変換する方法について説明します。
こちらもお読みください。
Pythonのリストって何?
Pythonのリストは、同じ型または異なる型を持つ値のコレクションを格納するために使用される線形データ構造です。
リスト内の各項目はカンマ (,)
で区切られます。
Pythonのリストは角括弧 []
で囲まれます。
PythonのリストはMutableであり、Pythonのプログラム内で作成した後にその内容を変更したり修正したりすることができます。
Pythonのリストは要素を順序よく格納し、そのインデックスによってリスト内の任意の要素に直接アクセスすることができます。
このようにしてPythonでリストを作成し、 type()
関数を使ってリストであるかどうかを検証することができます。
# Defining a Python list ls = [ 'Python' , 'JournalDev' , 'LinuxforDevices' ]
# Printing the results print (ls)
# Validating the type of 'ls' print ( type (ls))
|
結果は以下の通りです。
['Python', 'JournalDev', 'LinuxforDevices'] <class 'list'> |
この記事もチェック:Pythonのsample関数を使ってリストからランダムに要素を抽出する方法
Pythonの辞書って何?
Pythonの辞書は、キーと値のペアの形式でデータを格納するために使用されるデータ構造の特殊なタイプです。
Pythonの辞書は、キーと値の2つの主要なコンポーネントを持っています。
キーは単一のエンティティでなければなりませんが、値はリストやタプルなどの複数の値を持つエンティティであることができます。
キーと値はコロン(:)で区切られ、各項目(キーと値のペア)はPythonのリストと同じようにカンマ(,)で区切られます。
辞書は中括弧 {}
で囲まれます。
Pythonのリストと同様に、Pythonの辞書も変更可能です。
Pythonの辞書は要素を順番に並べずに保存し、辞書内のどの値にもそのキーで直接アクセスすることができます。
このようにしてPythonで辞書を作成し、リストと同じように type()
関数を使って辞書であるかどうかを検証することができます。
# Defining a Python dictionary ds = { 'Python' : "Python" , 'JournalDev' : "Java, Android, Python, Web" , 'LinuxforDevices' : "Unix/Linux" }
# Printing the results print (ds)
# Validating the type of 'ds' print ( type (ds))
|
結果は以下の通りです。
{'Python': 'Python', 'JournalDev': 'Java, Android, Python, Web', 'LinuxforDevices': 'Unix/Linux'} <class 'dict'> |
Pythonでリストを辞書に変換する方法は主に2つあります。
1つは辞書の内包、もう1つはPythonのzip()メソッドを使った方法です。
これから一つずつ説明していきます。
こちらもお読みください。
この記事もチェック:Pythonのタプルとは|forや結合、リストからの変換等を解説する
辞書内包を利用してリストを辞書に変換する
リストを辞書に変換するこの方法では、与えられたPythonのリストを繰り返し処理し、中括弧 {}
の中に対応する key:value
を作成します。
リストの各要素は辞書のキーになり、用途に応じて各キーに対応する値を生成することができます。
辞書の内包を利用して、PythonのリストをPythonの辞書に変換する例を見てみましょう。
以下はそのデモのためのPythonのコードです。
# Defining a Python list ls = [ 'E' , 'J' , 'O' , 'T' , 'Y' ]
# Using dictionary comprehension to convert the list to a dictionary ds = {item: ord (item) for item in ls}
# Printing the results print ( "Given Python list: " , ls)
print ( "Generated Python dictionary: " , ds)
# Validating the type of 'ds' print ( type (ds))
|
結果は以下の通りです。
Given Python list: ['E', 'J', 'O', 'T', 'Y'] Generated Python dictionary: {'E': 69, 'J': 74, 'O': 79, 'T': 84, 'Y': 89} <class 'dict'> |
上記の例では、Pythonの ord()
関数を使って、リスト内の各項目のASCII値(実際には英語のアルファベット)を取得しました。
そして、ord()関数が返すASCII値を、辞書の対応するキーに値として代入しています。
こうして、リスト内の各項目についてキーと値のペアを生成し、Pythonの辞書に変換しています。
Pythonのzip()関数を用いてリストを辞書に変換する
このメソッドでは、Pythonの iter
()関数を使って、与えられたPythonのリストに対して繰り返し処理を行うイテレータを作成します。
そして、Pythonのzip()関数を使って、2つのアイテムをまとめて圧縮し、対応する
key:value` を生成します。
そして最後のステップとして、 zip()
関数で圧縮された値から Python 辞書を作成して返す Python dict()
関数を用いて型付けを行います。
ここでは、Python の zip()
関数を使って Python のリストを Python の辞書に変換する例を見てみましょう。
以下は、そのデモのためのPythonのコードです。
# Defining a Python list ls = [ 'E' , 69 , 'J' , 74 , 'O' , 79 , 'T' , 84 , 'Y' , 89 ]
# Creating an iterator for list 'ls' item = iter (ls)
# Using the Python zip() function to convert the list to a dictionary ds = dict ( zip (item, item))
# Printing the results print ( "Given Python list: " , ls)
print ( "Generated Python dictionary: " , ds)
# Validating the type of 'ds' print ( type (ds))
|
結果は以下の通りです。
Given Python list: ['E', 69, 'J', 74, 'O', 79, 'T', 84, 'Y', 89] Generated Python dictionary: {'E': 69, 'J': 74, 'O': 79, 'T': 84, 'Y': 89} <class 'dict'> |
まとめ
この Python チュートリアルでは、Python のリストを Python の辞書に変換するための非常に便利で有用なテクニックを学びました。
また、 iter()
, zip()
, dict()
, ord()
のような様々な便利な Python 関数について学びました。
これらのPythonの関数を使って、もっと楽しい学習ができることを期待しています。
この記事もチェック:Pythonの除算(割り算)をする方法|リストや辞書(dict)でのやり方も解説