回答編集履歴

2

追記

2017/09/19 04:55

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -185,3 +185,5 @@
185
185
 
186
186
 
187
187
  もっといい方法がありそうな気もしますが、とりあえずこんな感じで。
188
+
189
+ pandasとかpandasとかpandasとか。

1

追記

2017/09/19 04:55

投稿

LouiS0616
LouiS0616

スコア35658

test CHANGED
@@ -111,3 +111,77 @@
111
111
 
112
112
 
113
113
  NumPyを使ったらもっと楽になりそうですが。
114
+
115
+ ```Python
116
+
117
+ import numpy as np
118
+
119
+
120
+
121
+ def main():
122
+
123
+ with open('data.txt') as f:
124
+
125
+ coord_dict = {}
126
+
127
+
128
+
129
+ for line in f:
130
+
131
+ elems = line.split()
132
+
133
+
134
+
135
+ key = elems[0]
136
+
137
+ values = np.array(elems[1:], dtype=np.float)
138
+
139
+
140
+
141
+ coord_dict[key] = values
142
+
143
+
144
+
145
+ if key == 'E':
146
+
147
+ print('-' * 50)
148
+
149
+ print('A to B', np.linalg.norm(coord_dict['A'] - coord_dict['B']))
150
+
151
+ print('A to D', np.linalg.norm(coord_dict['A'] - coord_dict['D']))
152
+
153
+ print('A to E', np.linalg.norm(coord_dict['A'] - coord_dict['E']))
154
+
155
+
156
+
157
+ if __name__ == '__main__':
158
+
159
+ main()
160
+
161
+
162
+
163
+ """出力
164
+
165
+ --------------------------------------------------
166
+
167
+ A to B 5.74456264654
168
+
169
+ A to D 7.73433901507
170
+
171
+ A to E 4.46430285711
172
+
173
+ --------------------------------------------------
174
+
175
+ A to B 5.13809303147
176
+
177
+ A to D 6.83373982531
178
+
179
+ A to E 6.8527366796
180
+
181
+ """
182
+
183
+ ```
184
+
185
+
186
+
187
+ もっといい方法がありそうな気もしますが、とりあえずこんな感じで。