teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2017/09/19 04:55

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -91,4 +91,5 @@
91
91
  """
92
92
  ```
93
93
 
94
- もっといい方法がありそうな気もしますが、とりあえずこんな感じで。
94
+ もっといい方法がありそうな気もしますが、とりあえずこんな感じで。
95
+ pandasとかpandasとかpandasとか。

1

追記

2017/09/19 04:55

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -54,4 +54,41 @@
54
54
  """
55
55
  ```
56
56
 
57
- NumPyを使ったらもっと楽になりそうですが。
57
+ NumPyを使ったらもっと楽になりそうですが。
58
+ ```Python
59
+ import numpy as np
60
+
61
+ def main():
62
+ with open('data.txt') as f:
63
+ coord_dict = {}
64
+
65
+ for line in f:
66
+ elems = line.split()
67
+
68
+ key = elems[0]
69
+ values = np.array(elems[1:], dtype=np.float)
70
+
71
+ coord_dict[key] = values
72
+
73
+ if key == 'E':
74
+ print('-' * 50)
75
+ print('A to B', np.linalg.norm(coord_dict['A'] - coord_dict['B']))
76
+ print('A to D', np.linalg.norm(coord_dict['A'] - coord_dict['D']))
77
+ print('A to E', np.linalg.norm(coord_dict['A'] - coord_dict['E']))
78
+
79
+ if __name__ == '__main__':
80
+ main()
81
+
82
+ """出力
83
+ --------------------------------------------------
84
+ A to B 5.74456264654
85
+ A to D 7.73433901507
86
+ A to E 4.46430285711
87
+ --------------------------------------------------
88
+ A to B 5.13809303147
89
+ A to D 6.83373982531
90
+ A to E 6.8527366796
91
+ """
92
+ ```
93
+
94
+ もっといい方法がありそうな気もしますが、とりあえずこんな感じで。