2017-02-20 2 views
0

Я не знаю, будет ли это повторяющийся вопрос: я искал аналогичный вопрос, но я его не нашел.python if condition with two output

Я немного борюсь с моим кодом на Python, и я надеюсь, что кто-то мне поможет.

Моя цель заключается в следующем:

Я хочу, чтобы очистить через список, если элемент внутри списка, как хотите, я хотел бы напечатать его, если я не хочу, чтобы печатать никаких данных.

это мой код, но он вообще не работает.

tags = soup('div') #from Beautifulsoup 
for d in tags: 
    if d.get('class') == "listing_details": 
     print d.get('class') 

else: 
    print 'no data' 

Этот код печатается как нет данных как len (list).

Я просто хочу только один выход, если первое условие не проверено.

Не мог бы кто-нибудь мне помочь?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

обновленный

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~

Я использовал этот код и он работает

class_list= list() 
for d in tags: 
    if d.get('class') == "listing_details": 
     print d.get('class') 
    class_list.append(d.get('class')) 

if 'listing_details' not in class_list: 
    print 'no data available' 

он уважает «Simple лучше, чем сложнее.», но не "Прекрасна лучше т han уродливый. "

+6

Во-первых, не используйте 'list' в качестве имени переменной, это тип языка Python. Во-вторых, скажите нам, что старый' list' переменной holded или мы не можем повторить его. – Adirio

+0

можете ли вы предоставить список вы используете? – Uriel

+0

@Adirio спасибо, –

ответ

0

Используйте переменный, чтобы определить, существует ли соответствующий элемент или нет:.

found = False 
for d in list: 
    if d.get('class') == "listing_details": 
     print d.get('class') 
     found = True 
if not found: 
    print 'no data' 

Кстати, по замечанию @Adirio, не используйте list в качестве имени переменного Это будет тенью встроенной функции/тип list.

+1

Это будет печатать только' listing_details' или 'no data' Я думал, что он хочет пробежать все элементы в списке. – Adirio

+0

@Adirio, Ах, я пропустил это. Я обновлю ответ. Спасибо за ваш комментарий. – falsetru