2012-07-06 118 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