2012-07-06 111 views
0

我在做什麼錯我的if語句它不能識別a中的元素是否等於0?我試圖打印的是永遠0節目打印.和永遠1 #。乾杯。if語句,比較列表,python

a=[0,0,1,0,1,1,0,1,1,0,0,0,0,1] 
print(a) 
for i in range(len(a)): 
    if a[i]==[0]: 
     print('.', end='') 
    else: 
     print('#', end='') 
print() 

慶典:

[0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1] 
############## 

回答

3

你可能想

if a[i] == 0: 

,而不是

if a[i] == [0]: 

要比較的項目,以整數值0,不給小號單元素列表[0]

+0

哦,是的,謝謝。之前當我繼續測試時,我一直不能迭代。林新編程,所以它很難記住我以前嘗試。 – JensD 2012-07-06 13:18:15

+0

這引發了一個修辭問題。 爲什麼a [1]返回一個整數 而[1:2]返回一個列表。 我想這不重要,但它有趣的說明和我的困惑的原因。歡呼聲 – JensD 2012-07-06 13:44:21

+0

@JensD:切片'a [i:j]'返回長度爲'j - i'的子列表。如果這種差異是1,那麼你會得到一個長度爲1的子列表。如果你能得到這個項目本身,這將是不一致的。 – 2012-07-06 13:48:07