假設檔案內容大致如下,已按照整數部分排序,中間可缺某整數區段,
0.01
0.02
0.03
0.09
1.03
1.02
1.01
1.04
1.09
3.01
3.22
3.05
4.01
4.03
4.02
5.06
5.01
5.07
7.01
7.02
其中沒有2.xx的部份。
程式碼如下,參考看看
def acc(f): # 這是個generator function
total = 0 # 儲存某整數區段的和
n = None # 某整數區段的整數部分
for line in f:
lf = float(line.strip())
ln = int(lf)
if n == ln: # 在同個整數區段內,加起來
total += lf
else:
if not n is None:
yield total # 進入下個整數區段,yield目前的和
n = ln
total = lf
yield total
with open('test.txt', 'rt') as f: # 開檔
for a in acc(f): # acc會回傳某整數區段的和
print(a)
不知道這麼寫如何?