Python在输出中查找整行
我正在运行一个命令,其中输出是一个数字列表:Python在输出中查找整行,python,string,python-3.x,Python,String,Python 3.x,我正在运行一个命令,其中输出是一个数字列表: output = subprocess.run(['command'], stdout = subprocess.PIPE) 输出(output.stdout.decode('utf-8'))如下所示: 1 534 89 4 57 9 我需要找出一个具体的数字是否不在列表中。问题是,如果我使用if num not in list:搜索num=3,我将得到true,因为数字534在该列表中 如何检查列表中是否有一个数字(在其自身的一行中)?只需拆分
output = subprocess.run(['command'], stdout = subprocess.PIPE)
输出(output.stdout.decode('utf-8')
)如下所示:
1
534
89
4
57
9
我需要找出一个具体的数字是否不在列表中。问题是,如果我使用if num not in list:
搜索num=3,我将得到true,因为数字534在该列表中
如何检查列表中是否有一个数字(在其自身的一行中)?只需拆分列表并检查“word”或“integer”,使用集合理解消除重复项:
if 3 in {int(x) for x in output.stdout.decode('utf-8').split()}:
通过直接输出split
,也可以实现更简单的方法:
if "3" in output.stdout.decode('utf-8').split():
(如果整数可以从0开始,则功能较弱:
03
)只需添加Jean Francois的答案即可。Split()默认情况下在空白处拆分,但由于您需要在行上拆分,我建议使用Split(“\n”)来进行拆分,这样代码将更有弹性您也可以使用re
模块:
import re
lookup=3
pattern = re.compile('\b{}\b'.format(lookup))
if pattern.search(output.stdout.decode('utf-8')):
...
将
num=3
更改为num=“3”
可能重复的