associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Diferenças para "RemoverRepetidosLista"

Diferenças entre as versões de 2 e 3
Revisão 2e 2004-07-02 21:42:45
Tamanho: 646
Editor: FelipeLessa
Comentário:
Revisão 3e 2004-10-30 21:23:58
Tamanho: 1137
Comentário: forma alternativa
Deleções são marcadas assim. Adições são marcadas assim.
Linha 26: Linha 26:
Como é costume em Python, aqui está um outro jeito, que funciona em uma única linha. Observe que a informação da ordem dos elementos é perdida, pois a conversão passa por um dicionário (que não guarda a informação em ordem, mas garante a unicidade) e depois retorna a uma lista. Logo, é mais útil para se obter um conjunto em forma de lista do que para se obter uma lista ordenada:

{{{
#!python
# lista é uma lista com elementos repetidos.
dict(zip(lista, lista)).keys()
}}}

Receita: RemoveRepetidosLista

Função para remover elementos repetidos de uma lista. Retorna uma nova lista.

Código

   1 def RemoveRepetidosLista(l):
   2     # cria um dicionario em branco
   3     dict = {}
   4     # para cada valor na lista l
   5     for word in l:
   6         # adiciona ao dicionario: valor:1
   7         # note que se for repetido o valor somente sobrescreve ele :)
   8         dict[word] = 1
   9     # retorna uma copia das 'keys'
  10     l[:] = dict.keys()
  11     return l

Como é costume em Python, aqui está um outro jeito, que funciona em uma única linha. Observe que a informação da ordem dos elementos é perdida, pois a conversão passa por um dicionário (que não guarda a informação em ordem, mas garante a unicidade) e depois retorna a uma lista. Logo, é mais útil para se obter um conjunto em forma de lista do que para se obter uma lista ordenada:

   1 # lista é uma lista com elementos repetidos.
   2 dict(zip(lista, lista)).keys()

Exemplo de uso

   1 lista_nova_sem_repeticao = RemoveRepetidosLista(lista)

Volta para CookBook.


ralobao