Python,匹配单词的第一个字母和最后一个字母

时间:2014-02-08 21:47:09

标签: python fuzzy-search

所以这里是选择“listb.txt”中一个单词的代码的一部分 它的第二部分给了我一个问题。它可以根据第一个字符选择一个单词...但是只要你说“和”,它就会抱怨最后一个字符。示例将是“ mthr ”,并且必须找到 M 其他 r Num 是它在文件中找到匹配项的行,/ 2是因为文件中的单词之间有空格,所以选择正确的单词。

这应该是所有需要的信息...... 有没有人有想法? 谢谢!

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                    

1 个答案:

答案 0 :(得分:2)

首先,您可以使用enumerate简化代码:

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

其次,您可以使用startswithendswith来测试字符串:

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()