Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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,大家好,我正在尝试使用列表理解和一些过滤来清理列表。由于某种原因(暗示我),过滤无法按预期工作,我仔细检查了我的语法,并仔细检查了它,我几乎肯定它是正确的 我希望得到与此类似的输出: DOMAINNAME\USERNAME 我得到的是这个 C:\python27\filename DOMAINNAME\USERNAME 上述情况表明.format类型格式在我下面的代码中不起作用 def tllocal(domain): try: out = subprocess.che

大家好,我正在尝试使用列表理解和一些过滤来清理列表。由于某种原因(暗示我),过滤无法按预期工作,我仔细检查了我的语法,并仔细检查了它,我几乎肯定它是正确的

我希望得到与此类似的输出:

DOMAINNAME\USERNAME

我得到的是这个

C:\python27\filename
DOMAINNAME\USERNAME
上述情况表明.format类型格式在我下面的代码中不起作用

def tllocal(domain):
    try:
        out = subprocess.check_output(["tasklist", "/V", "/FO", "List", "/FI", "USERNAME eq {0}\*" .format(domain)])
        users = [item for item in out.split() if "{0}" and "\\" in item .format(domain)]
        sortedl = set(users)
        print sortedl
        for name in sortedl:   
           print name
    except CalledProcessError as e:
        print(e.returncode)
    return sortedl
我相信是这条线造成了问题

users=[item for item in out.split()如果item.format(域)中的“{0}”和“\\”


任何帮助都将不胜感激。

你是正确的,那是错误的。这句话

if "{0}" and "\\" in item .format(domain)
解析为:

(if '{0}') and ("\\" in item .format(domain))
它总是
True
,因为字符串literal
“{0}”
总是True

正确的书写方式是
all

[item for item in out.split() if all(x in item for x in (domain, '\\'))]
或者简单地说是
,因为您只有两个元素:

[item for item in out.split() if domain in item and '\\' in item]

^^_非常感谢你指出这一点。我确信我是对的:(