republicado de: aprenda-python.blogspot.com.br
Não use len()
É muito comum lermos código Python que tem isso:
>>> if len(lista) == 0: ... # faz isso pq a lista está vazia... >>> if len(lista) > 0: ... # faz isso pq a lista tem itens...Para ver se uma lista está vazia, eu já vi um teste assim:if lista == []:
É normal, quando estamos aprendendo uma nova linguagem, levarmos o que já sabemos de outra, mas por favor, não faça assim! Existe uma maneira mais expressiva (chamamos pythônica) de escrever esses trechos de código:
>>> if lista: ... # faz isso pq a lista tem itens... >>> if not lista: ... # faz isso pq a lista está vazia... ...
O exemplo acima funciona porque Python avalia comoTrue
objetos preenchidos e comoFalse
os objetos vazios.
O mesmo princípio também vale para strings, dicionários, números, tuplas e tipos booleanos. Vamos usar uma string como exemplo:
>>> nome = 'Huguinho' >>> if nome: ... print 'O nome é %s' % nome ... O nome é Huguinho >>> >>> nome = '' >>> if not nome: ... print 'Anônimo' ... Anônimo >>>
É claro que olen()
existe para ser usado, mas somente aonde convém:
>>> lista = ['Huguinho', 'Zezinho', 'Luisinho'] >>> if lista: ... print 'Donald tem %d sobrinhos: %s' % (len(lista), ', '.join(lista)) ... else: ... print 'Donald não tem sobrinhos' ... Donald tem 3 sobrinhos: Huguinho, Zezinho e Luisinho >>>
Finalizando, use olen()
mas aprecie com moderação.
[Edição] Seguindo a dica do @andrewsmedina, vou dar um final diferente a esse post.
Só uselen()
quando você precisar saber:
- Quantos caracteres tem numa string;
- Quantos itens estão presentes numa lista, tupla, ou set;
- Quantas chaves existem num dicionário;
- Quantos itens existem em qualquer objeto iterável.
Mas não uselen()
para saber se um objeto está preenchido, ok?
Comentários