Вопрос:

Python - странный оператор IF при использовании вложенных списков

python list python-3.x if-statement multidimensional-array

48 просмотра

1 ответ

1 Репутация автора

Я не понимаю, почему 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]

Как я могу исправить код?

Автор: Floky Источник Размещён: 04.03.2017 04:49

Ответы (1)


3 плюса

40775 Репутация автора

У вас есть две 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??")
Автор: TigerhawkT3 Размещён: 04.03.2017 04:57
Вопросы из категории :
32x32