質問編集履歴

1

別案の追加

2018/07/17 09:16

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -115,3 +115,21 @@
115
115
 
116
116
 
117
117
  python 3.6.x
118
+
119
+
120
+
121
+ ### 追記
122
+
123
+
124
+
125
+ 単語の順番を反転させずに済む方法も考えてみましたが、処理が遅いです。
126
+
127
+ ```python
128
+
129
+ def remove_duplicate(txt):
130
+
131
+ unique_words = re.findall(r'\b(\w+)\b(?!.*\b\1\b)', txt) # ユニークな単語を抽出 (単語が最後に登場する順番)
132
+
133
+ return ' '.join(sorted(unique_words, key=lambda x: re.search(r'\b{}\b'.format(x), txt).start())) # 単語の最初の出現位置でソート
134
+
135
+ ```