回答編集履歴

6

編集

2017/10/31 06:21

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -86,7 +86,7 @@
86
86
 
87
87
  可能であるなら、これが一番効率的かと思います。
88
88
 
89
- id.txtがどのように生成されたかはわかりませんが、次のようにしてしまうと楽です。
89
+ id.txtがどのように生成されたかはわかりませんが、次のどちらかにしてしまうと楽です。
90
90
 
91
91
  - 改行をなくす
92
92
 

5

編集

2017/10/31 06:21

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -18,11 +18,27 @@
18
18
 
19
19
 
20
20
 
21
- 無駄な部分を取り除く必要がありますね。よって、次のように書けば問題いかと思います。
21
+ 次のようなアプローチが考えられます。
22
+
23
+ 0. 最後の一要素を削る
24
+
25
+ 0. 空文字列を取り除く
26
+
27
+ 0. 末尾のカンマを取り除く
28
+
29
+ 0. 元のファイルを編集する
30
+
31
+
32
+
33
+ ---
34
+
35
+ **最後の一要素を削る**
22
36
 
23
37
  ```Python
24
38
 
25
- s |= set(map(int, line.rstrip().split(',')[:-1]))
39
+ >>> '100,2,\n'.rstrip().split(',')[:-1]
40
+
41
+ ['100', '2']
26
42
 
27
43
  ```
28
44
 
@@ -30,13 +46,13 @@
30
46
 
31
47
  ただし、この方法をそのまま使うと最終行だけ上手くいきません。
32
48
 
33
- そこだけちょっと工夫が必要そうですね。
34
49
 
35
50
 
51
+ ---
36
52
 
37
- 可能であれば、id.txtの最終行にもカンマ付けるようにするのが最も単純です。
53
+ **空文字列取り除く**
38
54
 
39
- そう出来ない場合は、次のようにフィルタリングを使えますが、処理効率に響くかもしれません。
55
+ 次のようにフィルタリング出来ますが、処理効率に響くかもしれません。
40
56
 
41
57
  ```Python
42
58
 
@@ -50,6 +66,36 @@
50
66
 
51
67
  ---
52
68
 
69
+ **末尾のカンマを取り除く**
70
+
71
+ これも無駄な処理に思えます。
72
+
73
+ ```Python
74
+
75
+ >>> '100,2,\n'.rstrip().rstrip(',').split(',')
76
+
77
+ ['100', '2']
78
+
79
+ ```
80
+
81
+
82
+
83
+ ---
84
+
85
+ **元のファイルを編集する**
86
+
87
+ 可能であるなら、これが一番効率的かと思います。
88
+
89
+ id.txtがどのように生成されたかはわかりませんが、次のようにしてしまうと楽です。
90
+
91
+ - 改行をなくす
92
+
93
+ - 最後にもカンマを付ける
94
+
95
+
96
+
97
+ ---
98
+
53
- 最初からcsvとして処理た方が簡単な気もします。
99
+ 最初からcsvとして処理出来ら、その方が簡単な気もします。
54
100
 
55
101
  delimiterを複数指定できれば一番楽なのですが、私はその方法は知りません。

4

追記

2017/10/31 06:19

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -51,3 +51,5 @@
51
51
  ---
52
52
 
53
53
  最初からcsvとして処理した方が簡単な気もします。
54
+
55
+ delimiterを複数指定できれば一番楽なのですが、私はその方法は知りません。

3

追記

2017/10/31 06:00

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -45,3 +45,9 @@
45
45
  ['100', '2']
46
46
 
47
47
  ```
48
+
49
+
50
+
51
+ ---
52
+
53
+ 最初からcsvとして処理した方が簡単な気もします。

2

追記

2017/10/31 05:54

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -31,3 +31,17 @@
31
31
  ただし、この方法をそのまま使うと最終行だけ上手くいきません。
32
32
 
33
33
  そこだけちょっと工夫が必要そうですね。
34
+
35
+
36
+
37
+ 可能であれば、id.txtの最終行にもカンマを付けるようにするのが最も単純です。
38
+
39
+ そう出来ない場合は、次のようにフィルタリングを使えますが、処理効率に響くかもしれません。
40
+
41
+ ```Python
42
+
43
+ >>> list(filter(lambda x: x, ['100', '2', '']))
44
+
45
+ ['100', '2']
46
+
47
+ ```

1

追記

2017/10/31 05:51

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -18,12 +18,16 @@
18
18
 
19
19
 
20
20
 
21
- 無駄な部分を取り除く必要がありますね。
22
-
23
- よって、次のように書けば問題ないかと思います。
21
+ 無駄な部分を取り除く必要がありますね。よって、次のように書けば問題ないかと思います。
24
22
 
25
23
  ```Python
26
24
 
27
25
  s |= set(map(int, line.rstrip().split(',')[:-1]))
28
26
 
29
27
  ```
28
+
29
+
30
+
31
+ ただし、この方法をそのまま使うと最終行だけ上手くいきません。
32
+
33
+ そこだけちょっと工夫が必要そうですね。