Função para remover elementos repetidos de uma lista. Retorna uma nova lista. == Código == {{{ #!python def RemoveRepetidosLista(l): # cria um dicionario em branco dict = {} # para cada valor na lista l for word in l: # adiciona ao dicionario: valor:1 # note que se for repetido o valor somente sobrescreve ele :) dict[word] = 1 # retorna uma copia das 'keys' l[:] = dict.keys() 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: {{{ #!python # lista é uma lista com elementos repetidos. dict(zip(lista, lista)).keys() }}} A partir do Python 2.4 é possível utilizar-se do tipo de dados "Set", que obedece as restrições de conjuntos matemáticos para obter o mesmo efeito rapidamente, mas também com o problema de alterar a ordem dos elementos. {{{ #!python lista_sem_repeticoes = list(set(lista_com_repeticoes)) }}} É possível manter a ordem da lista usando uma lista temporária: {{{ #!python def RemoveRepetidosLista(lista): t = [] [ t.append(item) for item in lista if not t.count(item) ] return t }}} É possível escrever o que está acima em uma linha: {{{ #!python def RemoveRepetidosLista(lista): return [item for item in lista if item not in locals()['_[1]']] }}} Esse último código trapaceia um pouco, usando a variável interna _[1] que representa a lista que estamos construindo. == Exemplo de uso == {{{ #!python lista_nova_sem_repeticao = RemoveRepetidosLista(lista) }}} Volta para CookBook. == Mais informações == Consulte [[http://rstm.livejournal.com/4888.html|Uniq: remover elementos repetidos em uma lista em Python]].