回答編集履歴

1

修正

2018/10/29 04:13

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1,4 +1,4 @@
1
- 空文字列と置換し、新しいリストを作れば良いです。
1
+ 空文字列と置換れば良いです。
2
2
 
3
3
  (試験データはcan110さんの回答からお借りしました。)
4
4
 
@@ -6,13 +6,9 @@
6
6
 
7
7
  >>> lst = ['今日の天気は晴:','明日の','天気:は雨']
8
8
 
9
- >>>
10
-
11
- >>> dst = []
12
-
13
9
  >>> for e in lst:
14
10
 
15
- ... dst.append(
11
+ ... print(
16
12
 
17
13
  ... re.sub('.+:$', '', e)
18
14
 
@@ -20,27 +16,37 @@
20
16
 
21
17
  ...
22
18
 
23
- >>> dst
24
19
 
20
+
21
+ 明日の
22
+
25
- ['', '明日の', '天気:は雨']
23
+ 天気:は雨
26
24
 
27
25
  ```
28
26
 
29
27
 
30
28
 
31
- リスト内包表記を使うと更簡潔です。
29
+ matchした場合条件分岐る方法もあります
32
30
 
33
31
  ```Python
34
32
 
35
- >>> dst = [
33
+ >>> for e in lst:
36
34
 
37
- ... re.sub('.+:$', '', e) for e in lst
35
+ ... if re.match('.+:$', e):
38
36
 
39
- ... ]
37
+ ... print('')
40
38
 
41
- >>> dst
39
+ ... else:
42
40
 
43
- ['', '明日の', '天気:は雨']
41
+ ... print(e)
42
+
43
+ ...
44
+
45
+
46
+
47
+ 明日の
48
+
49
+ 天気:は雨
44
50
 
45
51
  ```
46
52
 
@@ -48,17 +54,21 @@
48
54
 
49
55
  ```Python
50
56
 
51
- >>> dst = [
57
+ >>> for e in lst:
52
58
 
53
- ... '' if re.match('.+:$', e) else e
59
+ ... print(
54
60
 
55
- ... for e in lst
61
+ ... '' if re.match('.+:$', e) else e
56
62
 
57
- ... ]
63
+ ... )
58
64
 
59
- >>> dst
65
+ ...
60
66
 
67
+
68
+
69
+ 明日の
70
+
61
- ['', '明日の', '天気:は雨']
71
+ 天気:は雨
62
72
 
63
73
  ```
64
74
 
@@ -68,20 +78,28 @@
68
78
 
69
79
  ```Python
70
80
 
71
- >>> dst = [
81
+ >>> for e in lst:
72
82
 
73
- ... '' if e.endswith(':') else e
83
+ ... print(e.endswith(':'))
74
84
 
75
- ... for e in lst
85
+ ...
76
86
 
77
- ... ]
87
+ True
78
88
 
79
- >>> dst
89
+ False
80
90
 
81
- ['', '明日の', '天気:は雨']
91
+ False
82
92
 
83
93
  ```
84
94
 
85
95
 
86
96
 
87
97
  ご自身にとって分かり易い方法を選ぶと良いでしょう。
98
+
99
+
100
+
101
+ ついでに
102
+
103
+ ---
104
+
105
+ ご提示のコードは、Python2系のように見えます。本当に3系の環境で実行できているでしょうか?