2014-10-16 79 views
-6
def noalpha(s): 

    noa = '' 
    for c in s: 
     if not (c in noa or c.isalpha()): 
      noa += c 
    return noa 

def flines(t, ww): 

    s=noalpha(t) 
    lines=t.lower().splitlines() 
    lst=[] 
    for i in range(len(lines)): 
     for caratteri in s: 
      lines[i]=lines[i].replace(caratteri, ' ') 
     wrdst=lines[i].split() 
     l= 'Line ' +str(i)+': ' 
     False 
     for k in ww: 
      k=k.lower() 
      num=wrdst.count(k) 

      if num>0: 
       l+='"'+ str(k) + '"=' + str(num)+' ' 
       True 
     if True: 
      lst+=[l] 


    return lst 

有人可以向我解释我如何修改输出,使空行不出现?输出运行程序后,我得到的是:如何修改输出

['Line 0: "to"=1 ', 'Line 1: "the"=1 ', 'Line 2: "the"=1 ', 'Line 3: "to"=1 ', 'Line 4: "so"=2 ', 'Line 5: ', 'Line 6: ', 'Line 7: "to"=1 "the"=1 ', 'Line 8: "to"=1 "the"=2 ', 'Line 9: ', 'Line 10: ', 'Line 11: "to"=1 "the"=1 ', 'Line 12: ', 'Line 13: ', 'Line 14: "so"=1 ', 'Line 15: "to"=1 ', 'Line 16: ', 'Line 17: ', 'Line 18: "to"=1 "the"=2 ', 'Line 19: "the"=1 ', 'Line 20: "the"=4 ', 'Line 21: ', 'Line 22: ', 'Line 23: ', 'Line 24: ', 'Line 25: ', 'Line 26: ', 'Line 27: "the"=1 ', 'Line 28: ', 'Line 29: ', 'Line 30: "the"=1 ', 'Line 31: '] 
+0

呃,为什么有一个'假'和'真正'只是站在那里无处? – 2014-10-16 14:58:11

+0

,以便它仅在循环为真时填充列表 – ProdigySR 2014-10-16 14:59:00

+0

像这样的代码仅适用于打印出没有参数文字的行ww – ProdigySR 2014-10-16 14:59:46

回答

0

尽管此代码是不漂亮做您需要的资料,做你需要的,如果将其更改为改变这些线

if num>0: 
    l+='"'+ str(k) + '"=' + str(num)+' ' 
    True 
if True: 
    lst+=[l] 

if num>0: 
    l+='"'+ str(k) + '"=' + str(num)+' ' 
    flag = True 
if flag: 
    lst+=[l] 

然后如果您在for循环开始时重新初始化flag = False,它应该产生您想要的结果。通过做如果真如果你是说总是追加到列表vs当实际上有东西

+0

这是完美的,你可以解释为什么你必须将true和false归因于一个变量?我的输出中另一个小问题是,它将它打印在不同的行上:['Line 0:'to'= 1', 'Line 1:'the'= 1', 'Line 2:“the”= 1 ', 'Line 3:'to'= 1', 'Line 4:“so”= 2', 'Line 7:“to”= 1“the'= 1', 'Line 8:”to “= 1”=“2”, '第11行:“到”= 1“,”= 1“, '行14:”so“= 1', '行15:”到“= 1” ,' '行20:“the”= 4', '行27:“the”=“1”,行= = 1', '行30:“the”= 1“] – ProdigySR 2014-10-16 15:19:06

+0

所以真正总是会评价为真我编辑我的答案,以反映这一点。不确定你的意思,我打印在不同的线上,请详细说明 – user2097159 2014-10-16 15:21:25

+0

好的非常感谢你,而且我从来没有解决过这个问题 – ProdigySR 2014-10-16 15:25:23