Python 如何在只知道某些字符的情况下在单词列表中查找单词
因此,我有一个包含3个单词的单词列表:Python 如何在只知道某些字符的情况下在单词列表中查找单词,python,string,Python,String,因此,我有一个包含3个单词的单词列表: Apple Christmas Tree Shopping Bag 我只知道单词中的某些字符和单词的长度,例如: ?i?as?r 其中,?表示它是一个未知字符,我想在控制台中键入它,并获得单词列表中包含这些字符的所有单词的输出,这些字符位于这些位置,并且有这么多字符 我有什么办法可以做到这一点吗?我希望我的程序以同样的方式工作。您可以将表达式转换为正则表达式,并尝试与之匹配: import re words = [ 'Apple', '
Apple
Christmas Tree
Shopping Bag
我只知道单词中的某些字符和单词的长度,例如:
?i?as?r
其中,?表示它是一个未知字符,我想在控制台中键入它,并获得单词列表中包含这些字符的所有单词的输出,这些字符位于这些位置,并且有这么多字符
我有什么办法可以做到这一点吗?我希望我的程序以同样的方式工作。您可以将表达式转换为正则表达式,并尝试与之匹配:
import re
words = [
'Apple',
'Christmas Tree',
'Shopping Bag'
]
match = '???i???as ?r??'
regex = '^' + match.replace('?', '.') + '$' # turn your expression into a proper regex
for word in words: # go through each word
if re.match(regex, word): # does the word match the regex?
print(word)
输出:
Christmas Tree
如果列表中有
str
,请尝试
IF "str" IN [list]
如果您有一个小单词列表,那么您可以对整个单词列表运行正则表达式扫描。将查询字符串转换为正则表达式,就可以开始了
否则,您可以将单词列表组织成块,例如,相当于将其拆分为不同目录中的多个文件:
Appl => [ Apple ]
Chri => [ Christchurch, Christmas Tree, ... ]
Shop => [ Shopper, Shopping Bag, Shopkeeper, ]
(可以有多个级别)
由于您的搜索查询似乎是锚定的,即您知道它从单词的开头开始,当您查找“?i???as?r???”时,您会看到“?i”将只匹配“Chri”,并且只在该子列表中查找
(事实上,如果你必须多次这样做,你最好构建一个递归搜索,并将列表组织为一个-以下是一些)。你听说过吗?这不适用于这个问题,因为没有
“str”
可以搜索。。。OP表示他只知道一些需要出现的角色。运算符中的正在查找精确相等