【问题标题】:Python - Weird IF statement while using nested listsPython - 使用嵌套列表时出现奇怪的 IF 语句
【发布时间】:2017-07-24 08:24:44
【问题描述】:

我不明白为什么else 条件没有通过。谁能解释一下原因?

#Python 3.4    
list=[]
list_of_list=[]

list.append("Test")
list.append("This")
list_of_list.append(list)
list=[]

print(list_of_list)
print(type(list_of_list))
print(len(list_of_list))

for element in list_of_list:
 if(element[0]=="Test"):
     print("[OK]")
 if(element[0]=="NO"):
     print("[OK]Condition is not verified")
 else:
     print("[OK]Why the condition is verified??")#<--------------------------

输出:

[['Test', 'This']]
<class 'list'>
1
[OK]
[OK]Why the condition is verified??

预期输出:

[['Test', 'This']]
<class 'list'>
1
[OK]

如何修复代码?

【问题讨论】:

  • 你的第二个if 应该是elif

标签: python list python-3.x if-statement multidimensional-array


【解决方案1】:

你有 两个 if 结构在这里:

if(element[0]=="Test"): # first block
    print("[OK]")
if(element[0]=="NO"): # second block
    print("[OK]Condition is not verified")
else: # attached to second block
    print("[OK]Why the condition is verified??")

element[0] 等于'Test',它就是这样,所以它打印"[OK]"。然后它检查它是否等于其他东西,当然不是,所以它然后转到else 块并打印"[OK]Why the condition is verified??"

如果您只想打印一件东西,请使用elif 将它们连接在一起:

if element[0]=="Test": # first block
    print("[OK]")
elif element[0]=="NO": # attached to first block
    print("[OK]Condition is not verified")
else: # still the same block
    print("[OK]Why the condition is verified??")

【讨论】:

  • 谢谢,这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 2012-06-30
  • 1970-01-01
  • 2015-12-08
相关资源
最近更新 更多