回答編集履歴
6
変数の間違い修正
answer
CHANGED
@@ -52,16 +52,16 @@
|
|
52
52
|
先頭の単語だけ得るなら
|
53
53
|
```
|
54
54
|
s = line.split("\t")
|
55
|
-
|
55
|
+
a = s[0]
|
56
56
|
```
|
57
57
|
の方がより汎用的に使用できるんじゃないですかね。
|
58
58
|
|
59
59
|
(2番目、3番目も取得したいなら
|
60
60
|
```
|
61
61
|
s = line.split("\t")
|
62
|
-
|
62
|
+
a1 = s[0] # 1番目
|
63
|
-
if len(
|
63
|
+
if len(s) > 2: # 分割後のリストの長さが2より大きいか調べる。これをしないと、1つしか単語がないのにs[1]等とするとValueErrorが起きるため。
|
64
|
-
|
64
|
+
a2 = s[1] # 2番目
|
65
|
-
|
65
|
+
a3 = s[2] # 3番目
|
66
66
|
```
|
67
67
|
とします)
|
5
修正continue
answer
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
- a, _, _, _ = lines.split("\t")
|
17
17
|
+ a, _, _, _ = line.split("\t")
|
18
18
|
+ except ValueError:
|
19
|
-
+
|
19
|
+
+ continue
|
20
20
|
|
21
21
|
if not str(a)=='2g-3950cc':
|
22
22
|
f.writeline()
|
4
コメントに対する回答
answer
CHANGED
@@ -12,8 +12,11 @@
|
|
12
12
|
|
13
13
|
with open(filepath1+textname1[i],'w',encoding='utf-8') as f:
|
14
14
|
for line in lines:
|
15
|
+
+ try: # コメントの依頼より。
|
15
|
-
-
|
16
|
+
- a, _, _, _ = lines.split("\t")
|
16
|
-
+
|
17
|
+
+ a, _, _, _ = line.split("\t")
|
18
|
+
+ except ValueError:
|
19
|
+
+ pass
|
17
20
|
|
18
21
|
if not str(a)=='2g-3950cc':
|
19
22
|
f.writeline()
|
@@ -48,7 +51,17 @@
|
|
48
51
|
全ての行がタブで4つ区切られてるなら構いませんが、そうでない場合エラーで止まります。
|
49
52
|
先頭の単語だけ得るなら
|
50
53
|
```
|
51
|
-
s = line.split("\t")
|
54
|
+
s = line.split("\t")
|
52
55
|
s = a[0]
|
53
56
|
```
|
54
|
-
の方がより汎用的に使用できるんじゃないですかね。
|
57
|
+
の方がより汎用的に使用できるんじゃないですかね。
|
58
|
+
|
59
|
+
(2番目、3番目も取得したいなら
|
60
|
+
```
|
61
|
+
s = line.split("\t")
|
62
|
+
s1 = a[0] # 1番目
|
63
|
+
if len(a) > 2: # 分割後のリストの長さが2より大きいか調べる。これをしないと、1つしか単語がないのにa[1]等とするとValueErrorが起きるため。
|
64
|
+
s2 = a[1] # 2番目
|
65
|
+
s3 = a[2] # 3番目
|
66
|
+
```
|
67
|
+
とします)
|
3
別件ついか
answer
CHANGED
@@ -41,7 +41,7 @@
|
|
41
41
|
|
42
42
|
|
43
43
|
--------
|
44
|
-
あとここも気にな
|
44
|
+
あと別件ですけどここも気になりました。
|
45
45
|
```
|
46
46
|
a,_,_ ,_ = line.split("\t")
|
47
47
|
```
|
2
ついか
answer
CHANGED
@@ -37,4 +37,18 @@
|
|
37
37
|
```
|
38
38
|
lines=["hoge@hoge","fuga@fuga"]
|
39
39
|
lines.split("@") # これはエラーになる
|
40
|
-
```
|
40
|
+
```
|
41
|
+
|
42
|
+
|
43
|
+
--------
|
44
|
+
あとここも気になる。
|
45
|
+
```
|
46
|
+
a,_,_ ,_ = line.split("\t")
|
47
|
+
```
|
48
|
+
全ての行がタブで4つ区切られてるなら構いませんが、そうでない場合エラーで止まります。
|
49
|
+
先頭の単語だけ得るなら
|
50
|
+
```
|
51
|
+
s = line.split("\t")
|
52
|
+
s = a[0]
|
53
|
+
```
|
54
|
+
の方がより汎用的に使用できるんじゃないですかね。
|
1
例をちょっとだけ直した
answer
CHANGED
@@ -23,14 +23,18 @@
|
|
23
23
|
[splitが使えるときと使えないときの違いがよく分かりません....]
|
24
24
|
に関してですが、
|
25
25
|
splitは文字列に対して使います。
|
26
|
-
|
26
|
+
```
|
27
|
-
"hogehoge@fugagufa"
|
27
|
+
line="hogehoge@fugagufa"
|
28
|
+
line.split("@")
|
28
|
-
|
29
|
+
>>> ["hogehoge","fugafuga"]
|
29
|
-
|
30
|
+
```
|
30
31
|
というようにsplitに指定した引数で文字列を分割してリストにします。
|
31
32
|
|
32
33
|
|
33
|
-
|
34
|
+
基本的に文字列じゃないものにsplitは使えません。
|
34
35
|
|
35
|
-
|
36
|
-
上のコードだと、line**s**は文字列ではなくリストなのでsplitは使えません
|
36
|
+
上のコードだと、line**s**は文字列ではなくリストなので、splitは使えません
|
37
|
+
```
|
38
|
+
lines=["hoge@hoge","fuga@fuga"]
|
39
|
+
lines.split("@") # これはエラーになる
|
40
|
+
```
|