Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将值与列表匹配_Python - Fatal编程技术网

Python 将值与列表匹配

Python 将值与列表匹配,python,Python,我有两个变量,如下所示。目标是检查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

我有两个变量,如下所示。目标是检查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
"

将字符串拆分为一个列表:

baseAU in out.split()

一种方法是在

if baseAU in out:
   print "Have match"
一种更方便的方法是将
out
变量分解为多个集合,并使用set
in
操作符。这应该更有效率

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

将字符串与行匹配的简单方法:

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不匹配

您是否尝试过
baseAU in out
?是的,但也与AU LINUX_ANDROID_test.04.02.01.40.14匹配(注意它实际上是AU_LINUX_ANDROID_test.04.02.01.40.144)如果换行以
\r
开头,则会中断,Windows和较旧的Mac操作系统就是这样。如果您需要检查多个值的输入输出,这不是更有效吗?在我看来,如果只检查一次单个值,那么创建集合(如果不需要,则按行分割)的开销总体上会更高。