1. ホーム
  2. python

[解決済み] Pythonで複数行のdictをフォーマットする適切な方法は何ですか?

2022-02-16 15:48:24

質問

Pythonで、コード中に複数行のdictを書きたいのです。それをフォーマットする方法がいくつかあります。以下は、私が思いついたいくつかの方法です。

  1. mydict = { "key1": 1,
               "key2": 2,
               "key3": 3, }
    
    
  2. mydict = { "key1": 1,
               "key2": 2,
               "key3": 3,
             }
    
    
  3. mydict = {
        "key1": 1,
        "key2": 2,
        "key3": 3,
    }
    
    

上記のどれかが構文的に正しいことは分かっていますが、Pythonのディクショ ンには1つの好ましいインデントと改行のスタイルがあると仮定します。それは何ですか?

注:これは構文の問題ではありません。上記はすべて(私の知る限り)有効なPythonの文であり、互いに同等です。

どのように解決するのですか?

私は3番を使っています。長いリストやタプルなどでも同じです。インデント以上の余分なスペースを加える必要はありません。いつものように、一貫性を保つようにしましょう。

mydict = {
    "key1": 1,
    "key2": 2,
    "key3": 3,
}

mylist = [
    (1, 'hello'),
    (2, 'world'),
]

nested = {
    a: [
        (1, 'a'),
        (2, 'b'),
    ],
    b: [
        (3, 'c'),
        (4, 'd'),
    ],
}

同様に、大きな文字列を空白を入れずに(三重引用符で囲まれた複数行の文字列を使用した場合のように)含めるための、私の好みの方法を紹介します。

data = (
    "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABG"
    "l0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEN"
    "xBRpFYmctaKCfwrBSCrRLuL3iEW6+EEUG8XvIVjYWNgJdhFjIX"
    "rz6pKtPB5e5rmq7tmxk+hqO34e1or0yXTGrj9sXGs1Ib73efh1"
    "AAAABJRU5ErkJggg=="
)