Python で辞書をリストに変換する

Sahil Bhosale 2023年10月10日
  1. Python の keys() メソッドを使って辞書からリストにキーを変換する
  2. Python の values() メソッドを用いて辞書からリストに値を変換する
  3. Python で辞書をタプルのリストに変換する
Python で辞書をリストに変換する

Python の辞書は key-value のペアを組み合わせたものです。key の助けを借りて、辞書内の値にアクセスすることができます。さて、Python で辞書をリストに変換することは異なる意味を持ちます。どちらかです。

  1. キーを分離してリストに変換することができます。
  2. 値を分離してリストに変換することができます。
  3. 辞書のキーと値のペアをタプルのリストに変換します。

Python の keys() メソッドを使って辞書からリストにキーを変換する

4つの key-value ペアを持つ dictionary という名前の辞書があるとします。

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

listOfKeys = dictionary.keys()
print("Type of variable listOfKeys is: ", type(listOfKeys))

listOfKeys = list(listOfKeys)

print("Printing the entire list containing all Keys: ")
print(listOfKeys)

print("Printing individual Keys stored in the list:")

for key in listOfKeys:
    print(key)

出力:

Type of variable listOfKeys is:  <class 'dict_keys'>

Printing the entire list containing all Keys: 
['a', 'b', 'c', 'd']

Printing individual Keys stored in the list:
a
b
c
d

これは辞書からすべての key を抽出し、その結果 (すべてのキー) を変数 listOfKeys に格納します。

ここで、変数 listOfKeys の型を確認すると <class 'dict_keys'> となるので、list() 関数の助けを借りて変数 listOfKeys をリストに変換しなければなりません。この時点で変数 listOfKeys の型を確認すると、<class 'dict_keys'> になってしまうからです。

この時点で、keys() 関数を使って辞書からすべてのキーを分離し、リストに変換したことになります。最後に、リスト内の要素を表示するには、for ループを使用しなければなりません。

Python の values() メソッドを用いて辞書からリストに値を変換する

values() メソッドは keys() メソッドと同じように動作します。唯一の違いは、values() メソッドがキーの代わりにすべての辞書の値を返すことです。

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

listOfValues = dictionary.values()
print("Type of variable listOfValues is: ", type(listOfValues))

listOfValues = list(listOfValues)

print("Printing the entire list containing all values: ")
print(listOfValues)

print("Printing individual values stored in the list:")

for val in listOfValues:
    print(val)

出力:

Type of variable listOfValues is:  <class 'dict_values'>

Printing the entire list containing all values: 
['Apple', 'Banana', 'Cherries', 'Dragon Fruit']

Printing individual values stored in the list:
Apple
Banana
Cherries
Dragon Fruit

関数 values() を用いて dictionary の値を取得し、その結果を変数 listOfValues の中に格納します。

変数 listOfValues の型を確認すると、その型はクラス <class 'dict_values'> になります。しかし、あなたはそれをクラス <class 'list'> にしたいと考えています。したがって、変数 listOfValueslist() 関数を使ってリストに変換し、その結果を同じ変数 listOfValues に格納しなければなりません。

最後に、ループを使って listOfValues のリスト内のすべての値を表示します。

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

辞書をタプルのリストに変換するには、2つの方法があります。一つは items() 関数であり、もう一つは zip() 関数です。

1. items() 関数

関数 items() は辞書の要素を <class 'dict_items'> に変換し、その結果を変数 myList に格納します。myList はリストに変換する必要があるので、そのためには list() 関数を使って型キャストし、その結果を同じ変数 myList に格納する必要があります。

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

myList = dictionary.items()
print(type(myList))

myList = list(myList)

print(myList)

出力:

<class 'dict_items'>
[('a', 'Apple'), ('b', 'Banana'), ('c', 'Cherries'), ('d', 'Dragon Fruit')]

2. zip() 関数

関数 zip() は 2つの引数を取り、1つ目は keys() 関数を用いたキー、2つ目は辞書の values() 関数を用いた値を受け取ります。そして、zip オブジェクトを返します。

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

myList = zip(dictionary.keys(), dictionary.values())
print(type(myList))

myList = list(myList)

print(myList)

出力:

<class 'zip'>
[('a', 'Apple'), ('b', 'Banana'), ('c', 'Cherries'), ('d', 'Dragon Fruit')]

ここで、zip オブジェクトを list() 関数を使って list に変換しなければなりません。そして、最終的な結果を myList という同じ変数の中に格納するか、必要に応じて別の変数の中に格納し、最後にリスト全体を出力します。

3. Python 2.x の iteritems() 関数

Python v2.x には iteritems() 関数もあり、items() 関数とほぼ同じように動作します。

iteritems()dictionary から各要素を取り出し、異なる型に変換します。変数 myList の型を調べると、型は <type 'dictionary-itemiterator'> です。そのため、関数 list() を用いてリストに変換する必要があります。変数 myList の型を確認すると、型は <型 'list'> であり、それを出力すると要素はタプルのリストの形になります。

dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}

myList = dictionary.iteritems()
print("Type of myList is: ", type(myList))

myList = list(myList)
print(myList)

出力:

('Type of myList is: ', <type 'dictionary-itemiterator'>)

[('a', 'Apple'), ('c', 'Cherries'), ('b', 'Banana'), ('d', 'Dragon Fruit')]

上記のコードを Python v2.x コンパイラで実行していることを確認してください。そうしないと、Python v3.x にこのメソッドがないため、エラーが発生します。

著者: Sahil Bhosale
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

関連記事 - Python Dictionary

関連記事 - Python List