Pythonでオブジェクトを文字列表現に変換する方法:str()とrepr()の違いを解説
Pythonでオブジェクトを文字列に変換する基本
Pythonでオブジェクトを文字列表現に変換する最も一般的な方法は、標準ライブラリに組み込まれている str() 関数を使うことです。str() は、渡されたオブジェクトを人間が読みやすい形式の文字列に変換して返します。
str()関数の使用例
>>> no = 100
>>> str(no)
'100'
>>> L1 = [1, 2, 3, 4]
>>> str(L1)
'[1, 2, 3, 4]'
>>> d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> str(d)
"{'a': 1, 'b': 2, 'c': 3, 'd': 4}"このように、整数・リスト・辞書など、さまざまな型のオブジェクトをそのまま文字列化できるのが str() の特徴です。
repr()関数との違い
一方、repr() 関数はオブジェクトの「公式な(正式な)」文字列表現を返します。これは曖昧さのない、あくまで正確な表現であり、多くの場合 eval() で元のオブジェクトを再現できる形式になっています。
対照的に str() は「非公式な」表現を返します。読みやすさを重視した出力であるため、必ずしも曖昧さがないとは限りません。
repr()関数の使用例
>>> repr(d)
"{'a': 1, 'b': 2, 'c': 3, 'd': 4}"
>>> repr(L1)
'[1, 2, 3, 4]'
>>> repr(no)
'100'str()とrepr()の使い分けのポイント
- str():ユーザー向けの出力やログ表示など、「人間が読みやすいこと」を優先したい場面で使用します。
- repr():デバッグ時のオブジェクト確認や、オブジェクトを厳密に識別したい場面で使用します。リストや辞書の中身を調べる際にも役立ちます。
なお、クラスを自作する場合は __str__() メソッドと __repr__() メソッドを定義することで、それぞれの関数による文字列表現をカスタマイズできます。__str__() が未定義の場合、str() は __repr__() の結果へフォールバックする仕様になっています。
-
文字列をJavaScriptオブジェクトに変換する方法【JSON.parse()の使い方】
JavaScriptでJSON形式の文字列をオブジェクトに変換するには、JSON.parse()メソッドを使用します。このメソッドは、引数に渡された文字列を解析(パース)し、対応するJavaScriptオブジェクトを返します。 サンプルコード <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Docum
-
Pythonでリストの文字列表現をリストに変換する方法【ast.literal_evalの使い方】
Pythonでは、[apple, orange, banana] のように文字列として表現されたリストを、実際のリストオブジェクトへ変換したい場面があります。そんなときに便利なのが、標準ライブラリの ast.literal_eval() です。 ast.literal_eval()とは ast.literal_eval() は、文字列をPythonの式として安全に評価するための関数です。任意のコードを実行してしまう危険性がある eval() と異なり、評価できるのは文字列・数値・タプル・リスト・辞書・ブール値(True / False)、そして None といったPythonのリテラル構造のみ