回答編集履歴

3

不要なimport部の削除

2022/11/17 17:09

投稿

kensoon
kensoon

スコア48

test CHANGED
@@ -135,8 +135,6 @@
135
135
  だーっと書いて見直してから気づいたのですが、「辞書側には干渉できない」という可能性が頭から抜けてました。その場合は力技にはなりますが、for文+valuesで中身の辞書を取り出してから、setdefaultメソッドで片っ端から値を代入するのが手っ取り早いかもしれません。setdefaultは辞書に備え付けられたメソッドの一つで、setdefault(key, value)とすることで、keyが存在しない場合のみ、valueが新たな値として追加されるという働きをします。
136
136
 
137
137
  ```python
138
- from collections import defaultdict
139
-
140
138
  profiles = {
141
139
  'jone': {'age': 20, 'height': 180, 'weight': 75},
142
140
  'kaori': {'age': 18, 'height': 160, 'weight': 43},

2

追加の回答

2022/11/17 16:58

投稿

kensoon
kensoon

スコア48

test CHANGED
@@ -130,3 +130,27 @@
130
130
  「そんなもん設定されてないよ」と返してくれます。
131
131
 
132
132
  以上、なにかの参考になれば幸いです。
133
+
134
+ (追記)
135
+ だーっと書いて見直してから気づいたのですが、「辞書側には干渉できない」という可能性が頭から抜けてました。その場合は力技にはなりますが、for文+valuesで中身の辞書を取り出してから、setdefaultメソッドで片っ端から値を代入するのが手っ取り早いかもしれません。setdefaultは辞書に備え付けられたメソッドの一つで、setdefault(key, value)とすることで、keyが存在しない場合のみ、valueが新たな値として追加されるという働きをします。
136
+
137
+ ```python
138
+ from collections import defaultdict
139
+
140
+ profiles = {
141
+ 'jone': {'age': 20, 'height': 180, 'weight': 75},
142
+ 'kaori': {'age': 18, 'height': 160, 'weight': 43},
143
+ 'utao': {'age': 16, 'height': 175},
144
+ }
145
+
146
+ for profile_dict in profiles.values():
147
+ profile_dict.setdefault('age', None)
148
+ profile_dict.setdefault('height', None)
149
+ profile_dict.setdefault('weight', None)
150
+
151
+ print(profiles)
152
+ ```
153
+
154
+ ```
155
+ {'jone': {'age': 20, 'height': 180, 'weight': 75}, 'kaori': {'age': 18, 'height': 160, 'weight': 43}, 'utao': {'age': 16, 'height': 175, 'weight': None}}
156
+ ```

1

表現の修正

2022/11/17 16:39

投稿

kensoon
kensoon

スコア48

test CHANGED
@@ -115,7 +115,7 @@
115
115
  None
116
116
  ```
117
117
 
118
- 必ず与えられる属性は、"属性名: データ型"。与えられないかもしれない属性は"Optional[想定されるデータ型] = デフォルト値"という使い方です。こいつなら、
118
+ 必ず与えられる属性は、"属性名: データ型"。与えられないかもしれない属性は"属性: Optional[想定されるデータ型] = デフォルト値"という使い方です。こいつなら、
119
119
 
120
120
  ```python
121
121
  print(utao_profile.birthday)