質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • Python 3.x

    6291questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Pythonの辞書について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 371

1007

score 9

現在下記書籍を使ってPythonの勉強をしています。
箸:オライリージャパン
タイトル入門Pyyhon3

この本のP87 3-15に記載の問題ついてご質問があります。

3-15
lifeという多重ラベルの辞書を作ろう。最上位キーとしては、"animal","plants","othoer"という文字列を使う。animalsキーは"cat","octopi","emus"というキーを持つほかの辞書を参照するようにする。catsキーは"Henri","Grumpy","Lucy"という文字列のリストを参照するようにする。ほかの期はすべて空辞書を参照するようにする。

life辞書自体は下記のように表現したのですが、life辞書とcat辞書、octopi辞書、emus辞書とのリンクをどのよう表現すれば良いかわかりません。

cats={"Henri","Grumpy","Lucy"}
octopi={}
emus={}

life={
"animals":{cats,octopi,emus},
"plants":{},
"other":{},
}

もしこちらわかる方がいらっしゃりましたら教えていただけますとうれしいです。

よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+4

本は持っていないので、質問に記載の内容から回答します。

Python の文法として以下の辞書(dict)、集合(set)、リスト(list)の表記方法があることを
学習したうえでの問題かと思います。

オブジェクト 表現 補足
辞書(dict) {key1: value1, key2: value2, ...} 波括弧で囲われたキーと値のペア
集合(set) {value1, value2, ...} 波括弧で囲われた値
リスト(list) [value1, value2, ...] 角括弧で囲われた値

問題文では、

catsキーは"Henri","Grumpy","Lucy"という文字列のリスト

と指定されていることから、

cats = {"Henri", "Grumpy", "Lucy"} # 波括弧{}は、集合を構成する

ではなく、

cats = ["Henri", "Grumpy", "Lucy"] # 角括弧[]は、リストを構成する


です。
また、

animalsキーは"cat","octopi","emus"というキーを持つほかの辞書

と指定されていることから、

life={ 
    "animals": {cats,octopi,emus}, 
    "plants": {}, 
    "other": {}, 
}

ではなく、

life={ 
    "animals":{
        "cats": cats,
        "octopi": octopi
        "emus": emus
    }, 
    "plants":{}, 
    "other":{}, 
}

です。

なお、全部まとめて、以下のように表記することもできます。

life = {
    "animals": {
        "cats": ["Henri", "Grumpy", "Lucy"],
        "octopi": {},
        "emus": {}
    }, 
    "plants":{}, 
    "other":{}
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

こんな感じでしょうか。

cat_list = ["Henri","Grumpy","Lucy"] # "Henri","Grumpy","Lucy"という文字列のリスト
animal_map = {"cat":cat_list,"octopi":{},"enus":{}} # "cat","octopi","emus"というキーを持つほかの辞書
life = {"animal":animal_map,"plants":{},"others":{}}
print(life) # {'plants': {}, 'animal': {'cat': ['Henri', 'Grumpy', 'Lucy'], 'octopi': {}, 'enus': {}}, 'others': {}}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python 3.x

    6291questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。