python как проверить список не содержит значения

рассмотрим эту простую функцию

def foo(l=[]):
    if not l:  print "List is empty"
    else : print "List is not empty"

Теперь вызовем foo

x=[]
foo(x)
#List is empty

foo('')
#List is empty

Но если x=[''] список не считается пустым!!!

x=['']
foo(x)
#List is not empty

Вопросы -

  1. Почему список пустых значений не считается пустым? (В случае переменной считается пустой, например)

    x=''
    if x: print 'не пусто!'
    иначе: напечатать «пусто»
    
  2. Как изменить функцию foo() так, чтобы список считался пустым во всех этих случаях: x=[], x=[''], х=['', '']

6
задан martineau 25 June 2012 в 17:43
поделиться