回答編集履歴
6
変数の間違い修正
test
CHANGED
@@ -106,7 +106,7 @@
|
|
106
106
|
|
107
107
|
s = line.split("\t")
|
108
108
|
|
109
|
-
|
109
|
+
a = s[0]
|
110
110
|
|
111
111
|
```
|
112
112
|
|
@@ -120,13 +120,13 @@
|
|
120
120
|
|
121
121
|
s = line.split("\t")
|
122
122
|
|
123
|
-
|
123
|
+
a1 = s[0] # 1番目
|
124
124
|
|
125
|
-
if len(
|
125
|
+
if len(s) > 2: # 分割後のリストの長さが2より大きいか調べる。これをしないと、1つしか単語がないのにs[1]等とするとValueErrorが起きるため。
|
126
126
|
|
127
|
-
|
127
|
+
a2 = s[1] # 2番目
|
128
128
|
|
129
|
-
|
129
|
+
a3 = s[2] # 3番目
|
130
130
|
|
131
131
|
```
|
132
132
|
|
5
修正continue
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
+ except ValueError:
|
36
36
|
|
37
|
-
+
|
37
|
+
+ continue
|
38
38
|
|
39
39
|
|
40
40
|
|
4
コメントに対する回答
test
CHANGED
@@ -26,9 +26,15 @@
|
|
26
26
|
|
27
27
|
for line in lines:
|
28
28
|
|
29
|
-
|
29
|
+
+ try: # コメントの依頼より。
|
30
30
|
|
31
|
+
- a, _, _, _ = lines.split("\t")
|
32
|
+
|
31
|
-
+ a, _, _, _ = line.split("\t")
|
33
|
+
+ a, _, _, _ = line.split("\t")
|
34
|
+
|
35
|
+
+ except ValueError:
|
36
|
+
|
37
|
+
+ pass
|
32
38
|
|
33
39
|
|
34
40
|
|
@@ -98,10 +104,30 @@
|
|
98
104
|
|
99
105
|
```
|
100
106
|
|
101
|
-
s = line.split("\t")
|
107
|
+
s = line.split("\t")
|
102
108
|
|
103
109
|
s = a[0]
|
104
110
|
|
105
111
|
```
|
106
112
|
|
107
113
|
の方がより汎用的に使用できるんじゃないですかね。
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
(2番目、3番目も取得したいなら
|
118
|
+
|
119
|
+
```
|
120
|
+
|
121
|
+
s = line.split("\t")
|
122
|
+
|
123
|
+
s1 = a[0] # 1番目
|
124
|
+
|
125
|
+
if len(a) > 2: # 分割後のリストの長さが2より大きいか調べる。これをしないと、1つしか単語がないのにa[1]等とするとValueErrorが起きるため。
|
126
|
+
|
127
|
+
s2 = a[1] # 2番目
|
128
|
+
|
129
|
+
s3 = a[2] # 3番目
|
130
|
+
|
131
|
+
```
|
132
|
+
|
133
|
+
とします)
|
3
別件ついか
test
CHANGED
@@ -84,7 +84,7 @@
|
|
84
84
|
|
85
85
|
--------
|
86
86
|
|
87
|
-
あとここも気にな
|
87
|
+
あと別件ですけどここも気になりました。
|
88
88
|
|
89
89
|
```
|
90
90
|
|
2
ついか
test
CHANGED
@@ -77,3 +77,31 @@
|
|
77
77
|
lines.split("@") # これはエラーになる
|
78
78
|
|
79
79
|
```
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
--------
|
86
|
+
|
87
|
+
あとここも気になる。
|
88
|
+
|
89
|
+
```
|
90
|
+
|
91
|
+
a,_,_ ,_ = line.split("\t")
|
92
|
+
|
93
|
+
```
|
94
|
+
|
95
|
+
全ての行がタブで4つ区切られてるなら構いませんが、そうでない場合エラーで止まります。
|
96
|
+
|
97
|
+
先頭の単語だけ得るなら
|
98
|
+
|
99
|
+
```
|
100
|
+
|
101
|
+
s = line.split("\t")
|
102
|
+
|
103
|
+
s = a[0]
|
104
|
+
|
105
|
+
```
|
106
|
+
|
107
|
+
の方がより汎用的に使用できるんじゃないですかね。
|
1
例をちょっとだけ直した
test
CHANGED
@@ -48,13 +48,15 @@
|
|
48
48
|
|
49
49
|
splitは文字列に対して使います。
|
50
50
|
|
51
|
+
```
|
51
52
|
|
53
|
+
line="hogehoge@fugagufa"
|
52
54
|
|
53
|
-
|
55
|
+
line.split("@")
|
54
56
|
|
55
|
-
|
57
|
+
>>> ["hogehoge","fugafuga"]
|
56
58
|
|
57
|
-
|
59
|
+
```
|
58
60
|
|
59
61
|
というようにsplitに指定した引数で文字列を分割してリストにします。
|
60
62
|
|
@@ -62,10 +64,16 @@
|
|
62
64
|
|
63
65
|
|
64
66
|
|
65
|
-
|
67
|
+
基本的に文字列じゃないものにsplitは使えません。
|
66
68
|
|
67
69
|
|
68
70
|
|
71
|
+
上のコードだと、line**s**は文字列ではなくリストなので、splitは使えません
|
69
72
|
|
73
|
+
```
|
70
74
|
|
75
|
+
lines=["hoge@hoge","fuga@fuga"]
|
76
|
+
|
71
|
-
|
77
|
+
lines.split("@") # これはエラーになる
|
78
|
+
|
79
|
+
```
|