Palavras-chave: Python, listagem, cores, zebrado, zebra list
Em aplicações Web é bastante comum exibir grandes listagens em uma página. Para facilitar a leitura dessas listagens, quase sempre utilizamos do artifício de alternar as cores de fundo das linhas exibidas.
O meu amigo Ulysses, mais uma vez (estou até pensando em deixá-lo escrevendo por aqui) deu uma dica excelente para fazer isso, veja:
cores = ["#F5F5F5", "#FFFFFF"] for n, linha in enumerate(linhas): cor_fundo = cores[n % 2] # aqui vai o seu código...
Vou aproveitar também essa dica para embutir uma outra dica mais voltada para a “usabilidade”: a diferença de saturação entre uma cor e outra usada no exemplo acima deve ser pequena para tornar esse efeito efetivo.
Nao é um pouco custoso rodar um modulo (%) em toda iteração?
cores = [“#F5F5F5”, “#FFFFFF”];
cor_fundo = 0;
y = numero de linhas;
for n in xrange(y): #nao sei usar enumerate :-P
cor_fundo = not cor_fundo; # só 2 itens
# aqui vai o seu código…
O custo desta operacao é praticamente irrelevante, porém usar “cor_fundo = not cor_fundo” também é elegante e vale a pena ser considerada.