Re: [問題] 有關for迴圈

看板Python作者 (生の直感、死の予感)時間17年前 (2007/08/08 23:06), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/2 (看更多)
像推文說的一樣 .read() 只會是將整個檔案的內容取出,因此只會執行一次 for i in ftr: for i in ftr.read().split('\n') 這兩種方式才是依行執行 另外這個問題用regular expression 做很快 import re r1 = re.complie('(國[^學]+學)') l = r1.findall(ftr.read()) d = {} [d.update(k,l.count(k)) for k in l] 大概像這樣 ※ 引述《ya790206 (殘雲奪月)》之銘言: : 標題: [問題] 有關for迴圈 : 時間: Wed Aug 8 22:02:12 2007 : : 感覺起來這個問題很蠢 : 這是讀取榜單 : 然後計算該校多少人進這間大學的程式 : 不過我遇到一個問題 : 他for迴圈只會執行print string 這行 : 等迴圈執行完後才執行print 'ss' : 為什麼會這樣呢? : 我所學告訴我應該print string和print 'ss' : 執行次數應該一樣 : 以下是程式碼 : -------------------------------------------------------- : : #coding=big5 : forCount={} : ftr=open('abcd.txt') : try: : for string in[ftr.read()]: : print string : print 'ss' : a=string.index('國') : b=string.index('學')+3 : string=string[a+1:b-a-1] : print string+'x' : if string in forCount: : forCount[string]+=1 : else: : forCount.update({string:1}) : except Exception: : print "ERROR" : finally: : ftr.close() : print forCountfor (key,value) in forCount.items(): : print key+':'+str(value)raw_input() : : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 59.116.129.56 : ※ 編輯: ya790206 來自: 59.116.129.56 (08/08 22:03) : 推 subook:我猜 [ftr.read()] 裡只有一個東西,也就是整個檔案內容 08/08 22:29 : → subook:因此 for 也只執行了一次 08/08 22:32 : → subook:你可能是要用 readline 之類的... 08/08 22:32 : → subook:readlines 08/08 22:34 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.110.216.37 ※ 編輯: Lucemia 來自: 140.110.216.37 (08/08 23:12)

08/08 23:19, , 1F
謝啦~我再研究研究regular expression
08/08 23:19, 1F

08/09 04:07, , 2F
推~好方法!
08/09 04:07, 2F
文章代碼(AID): #16kTmFw9 (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #16kTmFw9 (Python)