在我下面的示例代码中,我想产生一个预定义的数字列表是否匹配或不匹配我正在循环的迭代的指示。这是我的问题的一个简单例子。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)
运行时,它输出:
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
而 “正确” 的输出应该是
[*]
[ ]
[*]
[*]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
除了:'范围()'返回一个从零开始的列表,而不是一个为主。所以你的结果是:'[] [*] [] [*] [*]'。如果*希望* range()'返回一个基于列表的列表,请尝试:'range(1,volumes + 1)'。 –
也许你应该在if语句之前加上'print i,match,i == match'。然后你会看到有什么问题...... – sloth