在我下面的示例代碼中,我想產生一個預定義的數字列表是否匹配或不匹配我正在循環的迭代的指示。這是我的問題的一個簡單例子。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