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

回答編集履歴

4

修正

2017/11/13 08:14

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -1,4 +1,4 @@
1
- `major = data.split(' ')` ⇒ `major = major.split(' ')`では?
1
+ `major = data.split(' ')` ⇒ `major = major.split(' ')`では?
2
2
 
3
3
  ついでに
4
4
  ---

3

修正

2017/11/13 08:14

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -14,7 +14,7 @@
14
14
  return major_list
15
15
  ```
16
16
 
17
- 出力イメージはこんな感じです。
17
+ 戻り値の中身はこんな感じです。
18
18
  ```
19
19
  ['CIS', 'EC', 'PS', 'GSS', 'PBA', 'SDSC', 'CIS', 'CIS', 'MATH', 'CIS', 'CIS', 'PSY', 'CIS', 'GSS', 'PDS', 'CIS', 'CIS', 'PS', 'CIS', 'CIS', 'PHYS', 'CIS', 'UNDL', 'ATCH', 'CIS', 'PHYS', 'UNDL']
20
20
  ```

2

追記

2017/11/13 08:14

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -12,4 +12,9 @@
12
12
  with open(fname, 'r') as f:
13
13
  major_list = [m.split()[0] for m in f]
14
14
  return major_list
15
+ ```
16
+
17
+ 出力イメージはこんな感じです。
18
+ ```
19
+ ['CIS', 'EC', 'PS', 'GSS', 'PBA', 'SDSC', 'CIS', 'CIS', 'MATH', 'CIS', 'CIS', 'PSY', 'CIS', 'GSS', 'PDS', 'CIS', 'CIS', 'PS', 'CIS', 'CIS', 'PHYS', 'CIS', 'UNDL', 'ATCH', 'CIS', 'PHYS', 'UNDL']
15
20
  ```

1

追記

2017/11/13 08:13

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -1,1 +1,15 @@
1
- `major = data.split(' ')` ⇒ `major = major.split(' ')`では?
1
+ `major = data.split(' ')` ⇒ `major = major.split(' ')`では?
2
+
3
+ ついでに
4
+ ---
5
+ ご提示のコードでは、ループごとにmajor_listを上書きしてしまいます。
6
+ `major_list = major[0]`ではなく、`major_list.append(major[0])`と書くべきです。
7
+ その際は、空リストmajor_listをループ前に宣言する必要があります。
8
+
9
+ なお、次のように簡潔にも書けます。
10
+ ```Python
11
+ def majors_readf(fname):
12
+ with open(fname, 'r') as f:
13
+ major_list = [m.split()[0] for m in f]
14
+ return major_list
15
+ ```