Pythonで辞書を文字列に変換する方法|for文やjson,str関数を使ったやり方を解説

スポンサーリンク

この記事では、Pythonで辞書を文字列に変換するためのさまざまな方法について説明します。

スポンサーリンク

Pythonの辞書って何?

辞書とは、Pythonのオブジェクトで、キー:値という形式でデータを格納するために使用されます。

キーとそれに対応する値は、コロン(:)で区切られます。

また、辞書内の各キー:値のペアはカンマ(,)で区切られます。

Pythonの辞書は、常に中括弧{}で囲まれます。

Pythonの辞書は、Pythonのリストやタプルとは異なり、順不同のデータ構造です。

Python辞書のどの値にも、対応するキーを使うだけで直接アクセスすることができます

それでは、Pythonのコードでどのように辞書を作成するか見てみましょう。

# Create a Python dictionary
dc = {'py': "PYTHON", 'cpp': "C++", 'mat': "MATLAB"}
print(type(dc))
print(dc)

結果は以下の通りです。

<class 'dict'>
{'py': 'PYTHON', 'cpp': 'C++', 'mat': 'MATLAB'}

Pythonの文字列とは?

文字列はPythonのオブジェクトでもあり、最もよく使われるデータ構造で、文字の列を格納するのに使われます。

シングルクォート、ダブルクォート、トリプルクォートで囲まれたものはすべて、Pythonの文字列となります。

Pythonでは、シングルクォートとダブルクォートは1行の文字列を表すのに互換性があり、トリプルクォートは複数行の文字列を格納するのに使用されます。

Pythonのコードで1つの文字列を作ってみましょう。

# Create a Python dictionary
sr = "py: PYTHON cpp: C++ mat: MATLAB"
print(type(sr))
print(sr)

出力してみましょう。

<class 'str'>
py: PYTHON cpp: C++ mat: MATLAB

Pythonで辞書を文字列に変換するさまざまな方法

Pythonでは、辞書を文字列に変換する方法が複数存在します。

ここでは、最もよく使われる方法/やり方について説明します。

1. str()関数の使用

辞書を文字列に変換するこの方法では、単に辞書オブジェクトを str() 関数に渡します。

# Create a Python dictionary
dc = {'A': 'Android', 'B': 'Bootstrap', 'C': 'C Programming', 'D': 'Dart'}
print(type(dc))
print(f"Given dictionary: {dc}")
 
# Convert the dictionary to a string
# using str() function
sr = str(dc)
print(type(sr))
print(f"Converted string: {sr}")

結果を出力すると、以下の様になります。

<class 'dict'>
Given dictionary: {'A': 'Android', 'B': 'Bootstrap', 'C': 'C Programming', 'D': 'Dart'}
<class 'str'>
Converted string: {'A': 'Android', 'B': 'Bootstrap', 'C': 'C Programming', 'D': 'Dart'}

2. json.dumps()関数の使用

この方法では、辞書を文字列に変換するために、辞書オブジェクトを json.dumps() 関数に渡します。

json.dumps()`関数を使用するには、PythonのビルトインパッケージであるJSONモジュールをインポートする必要があります。

# Import Python json module
import json
 
# Create a Python dictionary
dict = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5}
print(type(dict))
print(f"Given dictionary: {dict}")
 
# Convert the dictionary to a string
# using json.dumps() function
str = json.dumps(dict)
print(type(str))
print(f"Converted string: {str}")

結果は以下の通りです。

<class 'dict'>
Given dictionary: {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5}
<class 'str'>
Converted string: {"A": 1, "B": 2, "C": 3, "D": 4, "E": 5}

3. 空文字列とforループの使用

辞書を文字列に変換するこの方法では、単純に for ループを使って辞書オブジェクトを繰り返し、辞書のキーにアクセスすることになります。

そして、各キーに対応する値にアクセスし、キーと値のペアを空の文字列に追加します。

# Create a Python dictionary
dict = {'D': "Debian", 'U': "Ubuntu", 'C': "CentOS"}
print(type(dict))
print(f"Given dictionary- {dict}")
 
# Create an empty string
str = ""
 
# Convert the dictionary to a string
# using for loop only
for item in dict:
    str += item + ':' + dict[item] + ' '
print(type(str))
print(f"Converted string- {str}")

結果を出力すると、以下の様になります。

<class 'dict'>
Given dictionary- {'D': 'Debian', 'U': 'Ubuntu', 'C': 'CentOS'}
<class 'str'>
Converted string- D:Debian U:Ubuntu C:CentOS

4. 空文字列、forループ、items()関数の利用

辞書を文字列に変換するこの方法では、まず、forループと items() 関数を使って辞書オブジェクトを繰り返し処理することで、キーと値のペアにアクセスします。

そして、各キーと値のペアを空の文字列に追加します。

# Create a Python dictionary
dict = {'Google': "GCP", 'Microsoft': "Azure", 'Amazon': "AWS"}
print(type(dict))
print(f"Given dictionary- {dict}")
 
# Create an empty string
str = ""
 
# Convert the dictionary to a string
# using for loop and items() function
for key, value in dict.items():
    str += key + ':' + value + ' '
print(type(str))
print(f"Converted string- {str}")

結果は以下の通りです。

<class 'dict'>
Given dictionary- {'Google': 'GCP', 'Microsoft': 'Azure', 'Amazon': 'AWS'}
<class 'str'>
Converted string- Google:GCP Microsoft:Azure Amazon:AWS 

5. forループ、items()、str.join()関数の使用法

この方法では、辞書を文字列に変換するために、forループを使用して辞書オブジェクトを繰り返し、キーと値を追加していきます。

次に、str.join() 関数を使って、キーと値のペアを1つの文字列として結合しています。

# Create a Python dictionary
dict = {'Google': " Chrome", 'Microsoft': " Edge", 'Apple': " Safari"}
print(type(dict))
print(f"Given dictionary: {dict}")
 
# Convert the dictionary to a string
# using str.join() and items() function
str = ', '.join(key + value for key, value in dict.items())
print(type(str))
print(f"Converted string: {str}")

結果は以下の通りです。

<class 'dict'>
Given dictionary: {'Google': '-Chrome', 'Microsoft': '-Edge', 'Apple': '-Safari'}
<class 'str'>
Converted string: Google-Chrome, Microsoft-Edge, Apple-Safari

Pythonでは、キーと値のペアを1つの文字列に変換するのではなく、辞書オブジェクトのキーと値を2つの別々の文字列に変換することもできます。

一つずつ説明していきましょう。

辞書のキーを文字列に変換する

まず、辞書オブジェクトのキーを文字列に変換するさまざまな方法について説明します。

1. 空文字列とforループの使用

# Create a Python dictionary
dict = {'OS': "Operating System", 'DBMS': "Database Management System", 'CN': "Computer Network"}
print(type(dict))
print(f"Given dictionary- {dict}")
 
# Create an empty string
str = ""
 
# Convert the dictionary keys into a string
# using for loop only
for item in dict:
    str += item + " "
print(type(str))
print(f"Keys in string- {str}")

結果を出力すると、以下の様になります。

<class 'dict'>
Given dictionary- {'OS': 'Operating System', 'DBMS': 'Database Management System', 'CN': 'Computer Network'}
<class 'str'>
Keys in string- OS DBMS CN

2. forループとstr.join()関数の使用法

# Create a Python dictionary
dict = {'gcc': "C program", 'g++': "C++ program", 'py': "Python Program"}
print(type(dict))
print(f"Given dictionary: {dict}")
 
# Convert the dictionary keys into a string
# using str.join()
str = ', '.join(key for key in dict)
print(type(str))
print(f"Keys in string: {str}")

結果を出力すると、以下の様になります。

<class 'dict'>
Given dictionary: {'gcc': 'C program', 'g++': 'C++ program', 'py': 'Python Program'}
<class 'str'>
Keys in string: gcc, g++, py

辞書の値を文字列に変換する

では、辞書オブジェクトの値を文字列に変換するさまざまな方法について説明します。

1. 空文字列とforループの使用

# Create a Python dictionary
dict = {'OS': "Operating_System", 'DBMS': "Database_Management_System", 'CN': "Computer_Network"}
print(type(dict))
print(f"Given dictionary- {dict}")
 
# Create an empty string
str = ""
 
# Convert the dictionary values into a string
# using for loop only
for item in dict:
    str += dict[item] + " "
print(type(str))
print(f"Values in string- {str}")

結果を出力すると、以下の様になります。

<class 'dict'>
Given dictionary- {'OS': 'Operating_System', 'DBMS': 'Database_Management_System', 'CN': 'Computer_Network'}
<class 'str'>
Values in string- Operating_System Database_Management_System Computer_Network

2. forループとstr.join()関数の使用法

# Create a Python dictionary
dict = {'gcc': "C program", 'g++': "C++ program", 'py': "Python Program"}
print(type(dict))
print(f"Given dictionary: {dict}")
 
# Convert the dictionary values into a string
# using str.join()
str = ', '.join(dict[item] for item in dict)
print(type(str))
print(f"Values in string: {str}")

結果を出力すると、以下の様になります。

<class 'dict'>
Given dictionary: {'gcc': 'C program', 'g++': 'C++ program', 'py': 'Python Program'}
<class 'str'>
Values in string: C program, C++ program, Python Program

まとめ

この記事では、Pythonで辞書を文字列に変換するさまざまな方法について学びました。

そして、辞書オブジェクトのキーと値を2つの別々の文字列に変換する方法についても学びました。

上記で説明したことを理解し、自分自身でこれらを試してくれることを願っています。

タイトルとURLをコピーしました