Python: Listagem com cores alternadas (zebra)

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.

This entry was posted in Python. Bookmark the permalink.

2 Responses to Python: Listagem com cores alternadas (zebra)

  1. 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…

  2. O custo desta operacao é praticamente irrelevante, porém usar “cor_fundo = not cor_fundo” também é elegante e vale a pena ser considerada.

Leave a Reply

Your email address will not be published. Required fields are marked *