2013-02-23 69 views
0

我有两个变量,如下所示。目标是检查baseAU变量中的值是否与“out”匹配。这可以做的最简单的方法是什么?一种方法是将其分解并放入一个列表中并对其进行解析。还有其他简单的方法吗?匹配值与列表

baseAU = "AU_LINUX_ANDROID_test.04.02.01.40.144" 

out= 
" 
AU_LINUX_ANDROID_test.04.02.01.40.134 
AU_LINUX_ANDROID_test.04.02.01.40.135 
AU_LINUX_ANDROID_test.04.02.01.40.136 
AU_LINUX_ANDROID_test.04.02.01.40.137 
AU_LINUX_ANDROID_test.04.02.01.40.138 
AU_LINUX_ANDROID_test.04.02.01.40.139 
AU_LINUX_ANDROID_test.04.02.01.40.140 
AU_LINUX_ANDROID_test.04.02.01.40.141 
AU_LINUX_ANDROID_test.04.02.01.40.142 
AU_LINUX_ANDROID_test.04.02.01.40.143 
AU_LINUX_ANDROID_test.04.02.01.40.144 
AU_LINUX_ANDROID_test.04.02.01.40.145 
AU_LINUX_ANDROID_dev.04.02.01.49.106 
AU_LINUX_ANDROID_dev.04.02.01.49.107 
AU_LINUX_ANDROID_dev.04.02.01.49.108 
AU_LINUX_ANDROID_dev.04.02.01.49.109 
AU_LINUX_ANDROID_dev.04.02.01.49.110 
AU_LINUX_ANDROID_dev.04.02.01.49.111 
AU_LINUX_ANDROID_dev.04.02.01.49.112 
AU_LINUX_ANDROID_dev.04.02.01.49.113 
AU_LINUX_ANDROID_dev.04.02.01.49.114 
AU_LINUX_ANDROID_dev.04.02.01.49.115 
AU_LINUX_ANDROID_dev.04.02.01.49.116 
AU_LINUX_ANDROID_dev.04.02.01.49.117 
AU_LINUX_ANDROID_dev.04.02.01.49.118 
" 
+0

你试过' baseAU in out'? – Blender 2013-02-23 03:09:06

+0

是的,但也与AU_LINUX_ANDROID_test.04.02.01.40.14相匹配(注意它实际上是AU_LINUX_ANDROID_test.04.02.01.40.144) – user1934146 2013-02-23 03:14:43

回答

1

分割你的字符串成一个列表:

baseAU in out.split() 
1

的一个方法是匹配的字符串,用in

if baseAU in out: 
    print "Have match" 

一个更方便的方法是打破out可变进设置,并使用集合in运算符。这应该更有效率。

s = set(out.split()) 
if baseAU in s: 
    print "Have match" 
+0

如果您需要检查多个输出值,它不会更有效吗?在我看来,如果仅仅一次检查单个值,那么创建集合的开销(并且如果不需要,则按行分割)将总体上更昂贵。 – jpmc26 2013-02-23 21:43:44

0

一个简单的方法来匹配一行字符串:

if "%s\n" % baseAU in out: 
    print "Match" 

AU_LINUX_ANDROID_test.04.02.01.40.14不会AU_LINUX_ANDROID_test.04.02.01.40.144匹配

+0

如果换行符以'\ r'开头就会中断,在Windows和较旧的Mac OS中就是这种情况。 – jpmc26 2013-02-23 21:40:00