2014-10-26 55 views
0

字符串我有一个单词列表:寻找列表中的蟒蛇

words = ["gentleman","woman","boy","girl"] 

我想如果两个完整或部分字符串匹配出现此名单内检查。例如,如果我有串

x = "gentleman" 

然后我会

if x in words 

容易找到它,但我怎么能检查部分匹配呢?例如,如果我有

x = "man" 

我想匹配“男人”作为“绅士”的一部分。有没有办法检查完整和部分匹配?

感谢

回答

4

,可以很容易地做到:

if any(x in s for s in words): 

演示(这适用于这两种情况):

>>> words = ["gentleman", "woman", "boy", "girl"] 
>>> x = "gentleman" 
>>> any(x in s for s in words) 
True 
>>> x = "man" 
>>> any(x in s for s in words) 
True 

什么,我这里做的是遍历words并检查搜索字符串是否在其中的任何字符。


编辑:要使它拒绝单个字母串,只是做了前检查:

if len(x) > 1: 
    search = any(x in s for s in words) 
else: 
    search = False 
+0

我知道这东西容易。感谢Alex。 – 2014-10-26 17:10:28

+0

这似乎是找到单个字母匹配,它可能只会找到人,而不是m? – 2014-10-26 17:36:50

+0

@EnglishGrad它这样做是因为它可以找到子串,而不管它的长度。为了避免这种情况,您可以根据'x'的长度进行检查。 – 2014-10-26 17:38:43