Podemos começar com uma solução simples:
def remove_1(item,seq):
"""Retira todas as ocorrências do item da sequência."""
aux = []
for elem in seq:
if elem != item:
aux.append(elem)
return aux
Mas que só funciona para listas e tuplos. E, neste último caso, transforma o tuplo numa lista. Claro que se apenas tivermos que manipular listas ainda podemos optar pela solução que usa listas por compreensão:
def remove_2(item,seq):
"""Seq é uma lista."""
return [elem for elem in seq if elem != item]
Então e se for um cadeia de caracteres? Podemos usar a função pré-definida replace:
def remove_3(item, seq):
"""se for uma cadeia de caracteres."""
return seq.replace(item,'')
Mas podemos juntar tudo num único programa? Claro que sim! Só precisamos de fazer um teste ao tipo do objecto, e para isso usamos o comando isinstance.
def remove_4(item, seq):
"""Lista ou tuplo ou cadeia de caracteres."""
if isinstance(seq,str):
return seq.replace(item,'')
elif isinstance(seq,list):
return [elem for elem in seq if elem != item]
elif isinstance(seq,tuple):
return tuple([elem for elem in seq if elem != item])
else:
print 'TypeError'
return seq
E pronto, já está!
Sem comentários:
Enviar um comentário