The Flat Dictionary The Flat Dictionary
Simple
ZH-HANS UK RU PT PT-BR Japanese HU FR EN

ニコラは見えるものすべてを分類するのが好きだ。ある時ステファンが彼の誕生日にラベルメーカーをあげ、ロボット達は何週間もの間、船のすべての表面からラベルをはがした。 彼はそれ以来研究室のすべての試薬や図書館の本、机のメモを分類していたが、彼はPythonの辞書(dictionary)について学習し、ソフィアの無人機についてのすべての可能な設定を分類した。 そのファイルは深いネスト構造になっているが、ソフィアはこれが好きではない。これらの辞書をフラットにしてソフィアを助けよう。

Pythonの辞書は設定を格納し処理するのに便利なデータ型だ。 それらはキーによってネストした構造を作り、データを格納することができる。 あなたはキーが文字列で値が文字列または辞書の、辞書が与えられる。 ゴールは辞書をフラットにすることだが、キーの構造は保存する。 結果はネストされた辞書ではない必要がある。 キーは元の辞書の親のキーを含むパスである必要がある。 キーのパスは"/"で区切られる。もし値が空の辞書であれば、空文字("")に置き換えられるべきだ。例を見てみよう。

{
    "name": {
        "first": "One",
        "last": "Drone"
    },
    "job": "scout",
    "recent": {},
    "additional": {
        "place": {
            "zone": "1",
            "cell": "2"}
    }
}

結果は以下のようになる。

{"name/first": "One",           #1つの親
 "name/last": "Drone",
 "job": "scout",                #ルートキー
 "recent": "",                  #空の辞書
 "additional/place/zone": "1",  #3レベル
 "additional/place/cell": "2"}

元々の辞書(dict型)

フラットにした辞書(dict型)

flatten({"key": "value"}) == {"key": "value"}
flatten({"key": {"deeper": {"more": {"enough": "value"}}}}) == {"key/deeper/more/enough": "value"}
flatten({"empty": {}}) == {"empty": ""}
    

この考え方は設定ファイルをパースし、とても古いシステムやファイル構造を単純化するのに役立つ。 あなたは簡単に自分独自の仕様向けにこのアイデアを適用することができるだろう。 その他に、コードを読みバグを探すことができるようになるのは有用なスキルである。


は空文字ではない。
は文字列または辞書型である。
root_dictionary != {}

You should be an authorized user in order to see the full description and start solving this mission.