Python for循环避免了类似的匹配

时间:2012-05-28 14:20:53

标签: python for-loop match

考虑以下列表:

items = ['about-conference','conf']

使用以下for循环对列表进行迭代打印“about-conference”和“conf”

for word in items:
    if 'conf' in word:
        print word

如果if语句遇到完全匹配,如果只打印“conf”,我怎么才能得到if语句?

谢谢。

5 个答案:

答案 0 :(得分:6)

不要使用in,请使用==来测试完全相等:

if word == "conf":
   print word

答案 1 :(得分:2)

您可以执行以下操作:

for word in list:
    if 'conf' == word.strip():
        print(word)

Strip确保没有虚假字符,例如空格或行尾。

答案 2 :(得分:2)

不完全确定你想要什么,但是如果你正在寻找使用单词边界的类似的东西,那么它会用破折号,空格,字符串开头等分开。

import re
for word in items:
    if 'conf' in re.findall(r'\b\w+\b', word):
        print 'conf'

答案 3 :(得分:1)

试试这个:

for word in list:
    if word == 'conf':
        print word

答案 4 :(得分:0)

在此特定示例中,您可以将其重写为:

items = ['about-conference','conf']
if 'conf' in items:
    print 'conf'