質問編集履歴

5

上書き

2021/02/03 08:30

投稿

morigami
morigami

スコア5

test CHANGED
File without changes
test CHANGED
@@ -80,7 +80,55 @@
80
80
 
81
81
  ```
82
82
 
83
+ 修正後のコード
84
+
85
+ ```python
86
+
87
+ def init(data):
88
+
89
+ data['first'] = {}
90
+
91
+ data['middle'] = {}
92
+
93
+ data['last'] = {}
94
+
95
+
96
+
97
+ def lookup(data, label, name):
98
+
99
+ return data[label].get(name)
100
+
101
+
102
+
103
+ def store(data, *full_names):
104
+
105
+ for full_name in full_names:
106
+
107
+ names = full_name.split()
108
+
109
+   if len(names) == 2:
110
+
111
+ names.insert(1, '')
112
+
113
+ labels = 'first', 'middle', 'last'
114
+
115
+ for label, name in zip(labels, names):
116
+
117
+ people = lookup(data, label, name)
118
+
119
+ if people:
120
+
121
+ people.append(full_name)
122
+
123
+ else:
124
+
125
+ data[label][name] = [full_name]
126
+
127
+ ```
128
+
83
129
 
130
+
131
+
84
132
 
85
133
  store関数を用いて複数のデータを入れられるようにしたつもりです。
86
134
 

4

更に修正

2021/02/03 08:30

投稿

morigami
morigami

スコア5

test CHANGED
File without changes
test CHANGED
@@ -68,6 +68,18 @@
68
68
 
69
69
  ```
70
70
 
71
+
72
+
73
+ 実行結果
74
+
75
+ ```実行結果
76
+
77
+ {'first': {'Aha-n': ['Aha-n Solo'], 'Aha~n': ['Aha~n Skywalker']}, 'middle': {'': ['Aha-n Solo', 'Aha~n Skywalker']}, 'last': {'Solo': ['Aha-n Solo'], 'Skywalker': ['Aha~n Skywalker']}}
78
+
79
+ ['Aha~n Skywalker']
80
+
81
+ ```
82
+
71
83
 
72
84
 
73
85
  store関数を用いて複数のデータを入れられるようにしたつもりです。

3

修正

2021/02/03 08:10

投稿

morigami
morigami

スコア5

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,9 @@
30
30
 
31
31
  names = full_name.split()
32
32
 
33
+ if len(names) == 2:
34
+
33
- if len(names) == 2: names.insert(1, '')
35
+ names.insert(1, '')
34
36
 
35
37
  labels = 'first', 'middle', 'last'
36
38
 

2

コードをテキストで表示

2021/02/03 08:04

投稿

morigami
morigami

スコア5

test CHANGED
File without changes
test CHANGED
@@ -6,63 +6,67 @@
6
6
 
7
7
 
8
8
 
9
- "def init(data):\n",
9
+ ```python
10
10
 
11
- " data['first'] = {}\n",
11
+ def init(data):
12
12
 
13
- " data['middle'] = {}\n",
13
+ data['first'] = {}
14
14
 
15
- " data['last'] = {}\n",
15
+ data['middle'] = {}
16
16
 
17
- " \n",
17
+ data['last'] = {}
18
18
 
19
- "def lookup(data, label, name):\n",
19
+
20
20
 
21
- " return data[label].get(name)\n",
21
+ def lookup(data, label, name):
22
22
 
23
- "\n",
24
-
25
- "def store(data, *full_names):\n",
26
-
27
- " for full_name in full_names:\n",
28
-
29
- " names = full_name.split()\n",
30
-
31
- " if len(names) == 2: names.insert(1, '')\n",
32
-
33
- " labels = 'first', 'middle', 'last'\n",
34
-
35
- " for label, name in zip(labels, names):\n",
36
-
37
- " people = lookup(data, label, name)\n",
38
-
39
- " if people:\n",
40
-
41
- " people.append(full_name)\n",
42
-
43
- " else:\n",
23
+ return data[label].get(name)
44
-
45
- " data[label][name] = [full_name]\n",
46
-
47
- "\n",
48
-
49
- " \n",
50
-
51
- "\n",
52
-
53
- "d = {}\n",
54
-
55
- "init(d)\n",
56
-
57
- "store(d, 'Han Solo', 'Aha-n Solo')\n",
58
-
59
- "store(d, 'Luke Skywalker', 'Anakin Skywalker', 'Anahaimu Skywalker', 'Aha~n Skywalker')\n",
60
-
61
- "print(d)\n",
62
-
63
- "print(lookup(d, 'last', 'Skywalker'))"
64
24
 
65
25
 
26
+
27
+ def store(data, *full_names):
28
+
29
+ for full_name in full_names:
30
+
31
+ names = full_name.split()
32
+
33
+ if len(names) == 2: names.insert(1, '')
34
+
35
+ labels = 'first', 'middle', 'last'
36
+
37
+ for label, name in zip(labels, names):
38
+
39
+ people = lookup(data, label, name)
40
+
41
+ if people:
42
+
43
+ people.append(full_name)
44
+
45
+ else:
46
+
47
+ data[label][name] = [full_name]
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ d = {}
56
+
57
+ init(d)
58
+
59
+ store(d, 'Han Solo', 'Aha-n Solo')
60
+
61
+ store(d, 'Luke Skywalker', 'Anakin Skywalker', 'Anahaimu Skywalker', 'Aha~n Skywalker')
62
+
63
+ print(d)
64
+
65
+ print(lookup(d, 'last', 'Skywalker'))
66
+
67
+ ```
68
+
69
+
66
70
 
67
71
  store関数を用いて複数のデータを入れられるようにしたつもりです。
68
72
 

1

コードをテキストで表示

2021/02/03 07:43

投稿

morigami
morigami

スコア5

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,63 @@
4
4
 
5
5
  下の画像がその時書いたプログラムと実行結果です。
6
6
 
7
+
8
+
9
+ "def init(data):\n",
10
+
11
+ " data['first'] = {}\n",
12
+
7
- ![イメージ説明](8acac2beebe40dd485873eb033e3988f.png)
13
+ " data['middle'] = {}\n",
14
+
15
+ " data['last'] = {}\n",
16
+
17
+ " \n",
18
+
19
+ "def lookup(data, label, name):\n",
20
+
21
+ " return data[label].get(name)\n",
22
+
23
+ "\n",
24
+
25
+ "def store(data, *full_names):\n",
26
+
27
+ " for full_name in full_names:\n",
28
+
29
+ " names = full_name.split()\n",
30
+
31
+ " if len(names) == 2: names.insert(1, '')\n",
32
+
33
+ " labels = 'first', 'middle', 'last'\n",
34
+
35
+ " for label, name in zip(labels, names):\n",
36
+
37
+ " people = lookup(data, label, name)\n",
38
+
39
+ " if people:\n",
40
+
41
+ " people.append(full_name)\n",
42
+
43
+ " else:\n",
44
+
45
+ " data[label][name] = [full_name]\n",
46
+
47
+ "\n",
48
+
49
+ " \n",
50
+
51
+ "\n",
52
+
53
+ "d = {}\n",
54
+
55
+ "init(d)\n",
56
+
57
+ "store(d, 'Han Solo', 'Aha-n Solo')\n",
58
+
59
+ "store(d, 'Luke Skywalker', 'Anakin Skywalker', 'Anahaimu Skywalker', 'Aha~n Skywalker')\n",
60
+
61
+ "print(d)\n",
62
+
63
+ "print(lookup(d, 'last', 'Skywalker'))"
8
64
 
9
65
 
10
66