Python,匹配单词的第一个字母和最后一个字母
下面是在“listb.txt”中选择一个单词的部分代码 这句话的第二部分给了我一个问题。它可以根据第一个字符选择一个单词。。。但只要你说“和”最后一个字,它就会抱怨。示例为“mthr”,它必须定位M或r。 Num是它在文件中查找匹配项的行,/2是因为文件中的单词之间有空格,所以它选择正确的一行 这应该是所有需要的信息。。。 有人有主意吗? 谢谢 以open('listb.txt','r')作为f的Python,匹配单词的第一个字母和最后一个字母,python,fuzzy-search,Python,Fuzzy Search,下面是在“listb.txt”中选择一个单词的部分代码 这句话的第二部分给了我一个问题。它可以根据第一个字符选择一个单词。。。但只要你说“和”最后一个字,它就会抱怨。示例为“mthr”,它必须定位M或r。 Num是它在文件中查找匹配项的行,/2是因为文件中的单词之间有空格,所以它选择正确的一行 这应该是所有需要的信息。。。 有人有主意吗? 谢谢 以open('listb.txt','r')作为f的: x=1 对于f中的行: 如果x==num/2和len(sms\u word)首先,您可以使用枚举
:
x=1
对于f中的行:
如果x==num/2和len(sms\u word)首先,您可以使用枚举来简化代码:
for x, line in enumerate(f, 1):
其次,您可以使用startswith
和endswith
测试字符串:
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])):
如果
行太长,那就!我必须把它浓缩一下吗?这可能就是它变得混乱的原因吗@ThiefMaster请发布样本输入和预期输出计算机没有长线问题。试图破译你的代码的人(包括你)会遇到问题。
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])):
line = line.strip()