回答編集履歴

5

追記3

2020/11/26 03:00

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -91,3 +91,71 @@
91
91
  print(masters2)
92
92
 
93
93
  ```
94
+
95
+ **追記3**
96
+
97
+
98
+
99
+ ```Python
100
+
101
+ import re
102
+
103
+
104
+
105
+ masters1 = "高橋は美しい足をしている"
106
+
107
+ ans1 = ['高橋は', '足を', 'して']
108
+
109
+
110
+
111
+ masters2 = ['' if s in ans1 else s
112
+
113
+ for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s]
114
+
115
+ print(masters2)
116
+
117
+ ```
118
+
119
+ 最初の回答で、['', '美しい', '', '', 'いる'] を
120
+
121
+ ['高橋は', '美しい', '足を', 'して', 'いる'] にする方法を示しました。
122
+
123
+
124
+
125
+ **追記**で、"高橋は美しい足をしている" を
126
+
127
+ ['', '美しい', '', '', 'いる'] に変換し、それを
128
+
129
+ ['高橋は', '美しい', '足を', 'して', 'いる'] にする方法を示しました。
130
+
131
+
132
+
133
+ **追記2**で、"高橋は美しい足をしている" を
134
+
135
+ ['高橋は', '美しい', '足を', 'して', 'いる'] にする方法を示しました。
136
+
137
+
138
+
139
+ すなわち、今回の方法は**追記**ですでに示されていたわけです。
140
+
141
+
142
+
143
+ それが分からないということは、回答をもらっていても、その意味を理解しようとはせず、
144
+
145
+ ただ実行して結果が得られたからそれで十分だと思っているからでしょう。
146
+
147
+
148
+
149
+ '(' + '|'.join(ans1) + ')' とは何か?
150
+
151
+ re.split('(' + '|'.join(ans1) + ')', masters1) とは何か?
152
+
153
+ [s for s in re.split('(' + '|'.join(ans1) + ')', masters1)] とは何か?
154
+
155
+ [s for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s] とは何か?
156
+
157
+ さらに先頭の s を '' if s in ans1 else s に変えるのはどういうことか?
158
+
159
+
160
+
161
+ このようなことを全部理解しようとしないと、これからも困りますよ。

4

スペースの調整

2020/11/26 02:59

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  masters1 = ['' if s in ans1 else s
50
50
 
51
- for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s]
51
+ for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s]
52
52
 
53
53
 
54
54
 
@@ -84,7 +84,7 @@
84
84
 
85
85
 
86
86
 
87
- masters2 = [s for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s]
87
+ masters2 = [ s for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s ]
88
88
 
89
89
 
90
90
 

3

コード修正

2020/11/25 13:58

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -84,13 +84,7 @@
84
84
 
85
85
 
86
86
 
87
- masters1 = [s for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s]
87
+ masters2 = [s for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s]
88
-
89
-
90
-
91
- it = iter(ans1)
92
-
93
- masters2 = [ s if s else next(it) for s in masters1 ]
94
88
 
95
89
 
96
90
 

2

もっと簡単に

2020/11/25 13:52

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -65,3 +65,35 @@
65
65
 
66
66
 
67
67
  もっと簡単に書けるかもしれませんが。
68
+
69
+
70
+
71
+ **追記2**
72
+
73
+ もっと簡単に書けました。
74
+
75
+ ```Python
76
+
77
+ import re
78
+
79
+
80
+
81
+ masters1 = "高橋は美しい足をしている"
82
+
83
+ ans1 = ['高橋は', '足を', 'して']
84
+
85
+
86
+
87
+ masters1 = [s for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s]
88
+
89
+
90
+
91
+ it = iter(ans1)
92
+
93
+ masters2 = [ s if s else next(it) for s in masters1 ]
94
+
95
+
96
+
97
+ print(masters2)
98
+
99
+ ```

1

追加された質問への回答を追加

2020/11/25 13:46

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -29,3 +29,39 @@
29
29
  print(master2)
30
30
 
31
31
  ```
32
+
33
+ **追記**
34
+
35
+ 追加された質問への解答です。
36
+
37
+ ```Python
38
+
39
+ import re
40
+
41
+
42
+
43
+ masters1 = "高橋は美しい足をしている"
44
+
45
+ ans1 = ['高橋は', '足を', 'して']
46
+
47
+
48
+
49
+ masters1 = ['' if s in ans1 else s
50
+
51
+ for s in re.split('(' + '|'.join(ans1) + ')', masters1) if s]
52
+
53
+
54
+
55
+ it = iter(ans1)
56
+
57
+ masters2 = [ s if s else next(it) for s in masters1 ]
58
+
59
+
60
+
61
+ print(masters2)
62
+
63
+ ```
64
+
65
+
66
+
67
+ もっと簡単に書けるかもしれませんが。