回答編集履歴

3

追記

2018/11/25 04:58

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -43,3 +43,25 @@
43
43
  ・ aから始まる行なら、リストに 0 をappendする
44
44
 
45
45
  ・ そうでないなら文字数をカウントし、リストの最終要素に足す
46
+
47
+
48
+
49
+ ```Python
50
+
51
+ with open(ファイル名) as fin:
52
+
53
+ char_counts = []
54
+
55
+ for line in fin:
56
+
57
+ if lineがaから始まる:
58
+
59
+ char_countsに0をappend
60
+
61
+ else:
62
+
63
+ lineの末尾の改行文字を除去する
64
+
65
+ char_countsの最終要素に文字数を足す
66
+
67
+ ```

2

追記

2018/11/25 04:58

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- 0. **文字列をごっそり読み込む**
5
+ - **文字列をごっそり読み込む**
6
6
 
7
- 0. **aから始まる行で文字列を分割してリストにする**
7
+ - **aから始まる行で文字列を分割してリストにする**
8
8
 
9
- 0. **リストの各要素について、空白文字を除去**
9
+ - **リストの各要素について、空白文字を除去**
10
10
 
11
- 0. **リストの各要素について、文字列の長さを数える**
11
+ - **リストの各要素について、文字列の長さを数える**
12
12
 
13
13
 
14
14
 
@@ -23,3 +23,23 @@
23
23
  print(data)
24
24
 
25
25
  ```
26
+
27
+
28
+
29
+ 追記
30
+
31
+ ---
32
+
33
+ よく考えたら、こんな方法もありますね。
34
+
35
+ こっちの方がメモリを圧迫しなくて良いかもしれません。
36
+
37
+
38
+
39
+ - 行数を格納するリストを用意する
40
+
41
+ - 一行一行読み取っていく
42
+
43
+ ・ aから始まる行なら、リストに 0 をappendする
44
+
45
+ ・ そうでないなら文字数をカウントし、リストの最終要素に足す

1

追記

2018/11/25 04:08

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -9,3 +9,17 @@
9
9
  0. **リストの各要素について、空白文字を除去**
10
10
 
11
11
  0. **リストの各要素について、文字列の長さを数える**
12
+
13
+
14
+
15
+ 分割方法だけアドバイスします。
16
+
17
+ 正規表現で、aから始まる行で分割すると楽です。
18
+
19
+ ```Python
20
+
21
+ data = re.split('^a.+$', data, flags=re.MULTILINE)
22
+
23
+ print(data)
24
+
25
+ ```