前回の質問にアドバイスをくださった方々、本当にありがとうございました。
別の条件で同じ様な問題を解決したいのですが、条件設定が考えられないのでご協力していただけると幸いです。
読み込んだ行の2個目の数値と次の行の1個目の数値の差が10以下の時、
hogeをつなげていきたいです。
1行目と2行目と3行目を例にすると
(3-2) < 10 :true
hoge1-hoge2
(15-4) < 10 :false
hoge1-hoge2
hoge3
といった流れです。
1行目の条件設定をどの様にしたらいいかと10以下でないときに条件をどう変更していったらいいか変わりません。
data
1list hoge1 1 2 2list hoge2 3 4 3list hoge3 15 16 4list hoge4 17 18 5list hoge5 19 20 6list hoge6 31 32 7list hoge7 33 34 8list hege8 45 46
python
1data = [] 2chunk = [] 3prev = -1 4with open("data","r")as f: 5 for line in f: 6 new_line = line.strip().split() 7 8 if not line: 9 continue 10 11 if prev < new_line[2]: 12 chunk.append(new_line[1]) 13 prev = int(new_line[3]) 14 15 if int(new_line[2]) - prev < 10: 16 chunk.append(new_line[3]) 17 18 else: 19 prev = int(new_line[3]) 20 21 22 data.append("-".join(chunk)) 23 24print("\n".join(data))
理想の形は
python
1hoge1-hoge2 2hoge3-hoge4-hoge5 3hoge6-hoge7 4hoge8
アドバイスいただけたら幸いです。
よろしくお願い申し上げます。
前回の質問:https://teratail.com/questions/179407
回答1件
あなたの回答
tips
プレビュー