回答編集履歴
1
補足を追加
answer
CHANGED
@@ -4,9 +4,18 @@
|
|
4
4
|
|
5
5
|
以下、細かい説明。
|
6
6
|
|
7
|
-
質問文のリンク先の動画を見てみましたが、基になる単語を「英語漬け.com」(https://eigo-duke.com/)というサイトの単語表からテキストエディターにコピペして作っていますね。
|
7
|
+
質問文のリンク先の動画を見てみましたが、基になる単語を「英語漬け.com」([https://eigo-duke.com/](https://eigo-duke.com/))というサイトの単語表からテキストエディターにコピペして作っていますね。
|
8
8
|
|
9
9
|
この動画が作られた当時の単語表と、現在の同じサイトの単語表では、**表の内容が変わっています**。
|
10
10
|
英単語と日本語だけでなく、音声再生用のボタンやチェックボックスが追加されているので、ブラウザーから単なるコピペするだけでは、質問のコードが想定しているデータが得られません。
|
11
11
|
|
12
|
-
コピペで得られたテキストを(不要な部分を削除したり、行を連結したりして)加工し、1行にひとつずつ英単語と日本語がタブ区切りで書かれたデータを作ってやると、質問文のコードのままで、「選択肢が4つ揃い、正解が含まれている」実行結果が得られました。
|
12
|
+
コピペで得られたテキストを(不要な部分を削除したり、行を連結したりして)加工し、1行にひとつずつ英単語と日本語がタブ区切りで書かれたデータを作ってやると、質問文のコードのままで、「選択肢が4つ揃い、正解が含まれている」実行結果が得られました。
|
13
|
+
|
14
|
+
なお、現在のコードのままでは、「日本語の説明中に英小文字があるとパースが破綻する」という問題と、「正規表現に`\s`を指定しようとして失敗している」という問題があるので、以下のように修正したほうがいいでしょう。
|
15
|
+
|
16
|
+
```Diff
|
17
|
+
-english_words = re.findall('[a-z]+', data)
|
18
|
+
+english_words = re.findall('^[a-z]+', data, re.MULTILINE)
|
19
|
+
-ja = re.findall('\s.*\n', data)
|
20
|
+
+ja = re.findall(r'\s.*\n', data)
|
21
|
+
```
|