2014-02-08 169 views
0

因此,這裏是選擇「listb.txt」中的單詞的代碼的一部分。 它是該行的第二部分,它給了我一個問題。它可以根據第一個字符選擇一個詞......但只要你說「和」最後一個字符,它就會抱怨。示例將是「mthr」並且它必須位於M其他r編號是它在文件中找到匹配的行,/ 2是因爲文件中的單詞之間存在空格,所以它選擇了正確的一個。Python匹配單詞的第一個字母和最後一個單詞

這應該是所有需要的信息... 有沒有人有想法? 謝謝!其次

for x, line in enumerate(f, 1): 

,您可以使用startswithendswith測試字符串:

with open('listb.txt','r') as f: 
    x = 1 
    for line in f: 
     if x == num/2 and len(sms_word) <= len(line) < 2*(len(sms_word)) and sms_word[0] == line[0]: 
      print line 
      break 
     x += 1      
+0

那'如果'行太長了! – ThiefMaster

+0

我必須以某種方式濃縮它嗎?這可能是它感到困惑的原因嗎? @ThiefMaster – escGoat007

+2

請發佈樣本輸入和期望的輸出 – inspectorG4dget

回答

2

首先,你可以用enumerate簡化代碼

if (x == num/2 and 
    len(sms_word) <= len(line) < 2 * len(sms_word) and 
    line.startswith(sms_word[0]) and 
    line.endswith(sms_word[-1])): 

最後,從文件中的行會有一個換行符'\n'結尾,所以strip()他們先:

line = line.strip() 
相關問題