記号の区切りでその中の要素を2つずつリストに入れたいです。
I am John.Nice to meet you. Nice to meet you too. ---------- I have a map. ---------- Where is Tom? I do not know it. When did you see him? I saw him yesterday. ---------- Did you do your homework? Yes,I did.Why? I could not do it because it is very difficult.Could you teach me? Sure.What’s page did you think difficult? 45 page is. ----------
というテキストファイルがあります。
このファイルの中身を----------の中の要素ごとに2つに分けたいです。
アウトプットとしては上のテキストファイルを
[["I am John.Nice to meet you.","Nice to meet you too."],["Where is Tom?","I do not know it."],["When did you see him?","I saw him yesterday."],["Did you do your homework?","Yes,I did.Why?"],["I could not do it because it is very difficult.Could you teach me?","Sure.What’s page did you think difficult?"]]
というリストに変換したいです。
data=[] f = open("data.txt","r") i =0 tmp = [] for row in f: if i <2: tmp.append(row) i +=1 else: data.append(tmp) tmp = []
とコードを書いて実行すると、
このファイルの中身を----------の中の要素ごとの2ペアごとにすることはできましたが、
----------ごとに配列を作ることや、----------で囲まれた部分内が奇数の要素を持つ時、ペアにならず配列に格納されないものをスキップすることができません。
目的のコードを作るにはどうしたらいいでしょうか?
2つずつというのがよくわかりません
例えば、I am John.Nice to meet you. Nice to meet you too. のブロックならその文章の2つ。
Did you do your homework? Yes,I did.Why? I could not do it because it is very difficult.Could you teach me? Sure.What’s page did you think difficult? 45 page is. のブロックならそのブロックの中の、Did you do your homework? Yes,I did.Why? を組みにしまた、I could not do it because it is very difficult.Could you teach me? Sure.What’s page did you think difficult?も組みにする、ということです
要するに2文づつということですよね。
はい、そうです
もし一行に、I am John.I am 12 years old. とあったらこの2文で1文とみなしますが
そこは疑問に思いました。if文でピリオドを見つけたら1文とみなす処理を入れようと思っていたのですが、これがあるせいで狂ってしまいます。なにか法則性があるんですか?
法則性はないです・・・
法則性のないものはプログラムに書けませんねー。
回答1件
あなたの回答
tips
プレビュー