如果拆分列表上的语句不起作用python3

Posted

技术标签:

【中文标题】如果拆分列表上的语句不起作用python3【英文标题】:If statement on split list not working python3 【发布时间】:2015-08-12 07:15:01 【问题描述】:

我有一个正在通过 for 循环运行的列表。然后尝试将列表中的某些元素与 if 语句进行比较。我的问题是 if 语句不起作用。我已经打印了该值,但看不出它不应该进入if 语句的任何原因。我还执行了一个strip() 并将变量转换为一个不起作用的str(var)。我认为它有一些我无法弄清楚的待办事项清单,请帮助

以下是我的部分代码。有问题的 if 语句是查找 VMWARE 的行

for i in PORTSB:
    if i.startswith('CL'):
        HOSTGRP_CMD = '/HORCM/usr/bin/raidcom get host_grp -port 0 -IH1|grep -v PORT'.format(i, HORCM)
        HOSTGRP = subprocess.check_output([HOSTGRP_CMD], shell=True, universal_newlines=True).split()
        for j in range(len(HOSTGRP)):
            if HOSTGRP[j] == HOST:
                PORTS.append([HOSTGRP[j - 2]])
                HSD.append([HOSTGRP[j - 2] + '-' + HOSTGRP[j - 1]])
                HSD_N.append([HOSTGRP[j]])
                HOST_M.append([HOSTGRP[j + 2]])
                if HOSTGRP[j + 2].strip() == 'WMWARE_EX':
                    HOST_MN.append([33])
                elif HOSTGRP[j + 2].strip() == 'WMWARE':
                    HOST_MN.append([1])
                elif HOSTGRP[j + 2].strip() == 'AIX':
                    HOST_MN.append([15])
                elif HOSTGRP[j + 2].strip() == 'SOLARIS':
                    HOST_MN.append([9])
                elif HOSTGRP[j + 2].strip() == 'WIN_EX':
                    HOST_MN.append([44])
                elif HOSTGRP[j + 2].strip() == 'WIN':
                    HOST_MN.append([12])
                elif HOSTGRP[j + 2].strip() == 'LINUX':
                    HOST_MN.append([0])

【问题讨论】:

你可能想要使用字典而不是那个 if-elif 块。 此代码可能需要进行一些重大清理;你想用它来完成什么? 【参考方案1】:

您似乎将'VMWARE' 拼错为'WMWARE'。您还有 'WMWARE_EX' 而不是 'VMWARE_EX'

【讨论】:

以上是关于如果拆分列表上的语句不起作用python3的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL - 如果父返回类型是对象列表,则模式拼接上的模式委派不起作用

如果循环中的语句不起作用[重复]

在 Jquery .html 替换新 div 上的整个 div 选择器后不起作用

CTRL+V 在 PyAutoGUI、Windows 上的 Python 3 中不起作用

Excel中的VBA - 如果语句计数器不起作用

试图制作一个简单的选项列表,不起作用(python 3)[重复]