Re: [問題] txt內容切割加總

作者: alibuda174 (阿哩不達)   2014-10-11 18:35:58
假設檔案內容大致如下,已按照整數部分排序,中間可缺某整數區段,
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)
不知道這麼寫如何?
作者: wohtp (會喵喵叫的大叔)   2014-10-11 19:28:00
不是說"there is only one obvious way to do it"的嗎?跟說好的不一樣! XD
作者: alibuda174 (阿哩不達)   2014-10-11 20:30:00
我覺得那是早期的口號,現在已經不適用了
作者: uranusjr (←這人是超級笨蛋)   2014-10-11 21:12:00
是 should be one, and preferably only one; 要所有事情都只有一種作法本來就不可能, 只能要求至少要有一種

Links booklink

Contact Us: admin [ a t ] ucptt.com