在python循环中匹配整数

在下面的示例代码中,我想要生成一个指示,表明预定义的数字列表是否与我正在循环的迭代匹配或不匹配.这是我的问题的简化示例.

不幸的是,我的代码不符合我的期望,可能我错过了一些简单的东西.在我的实际应用中,这是通过具有不同输出的极大的一维阵列来完成的,但是这以简单的文本方式展示了它,易于重现.

也许我还应该补充说我正在使用Python 2.7.5.

match = [1, 3, 4]
volumes=10

def vector_covariates(match, volumes):
    for i in range(volumes):
        if i == match:
            print "[*]"
        else:
            print "[ ]" 

vector_covariates(match, volumes)

运行时,输出:

 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ] 

而“正确”的输出应该是

 [*]
 [ ]
 [*]
 [*]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]
 [ ]

解决方法:

使用in而不是==:

if i in match:

实际上,你正在检查i(一个数字)到列表的值,而这两个不一样!

上一篇:迭代器


下一篇:Python内置any(iterable)函数