Podemos começar com uma solução simples:
1.
def
remove_1(item,seq):
2.
"""Retira todas as ocorrências do item da sequência."""
3.
aux
=
[]
4.
for
elem
in
seq:
5.
if
elem !
=
item:
6.
aux.append(elem)
7.
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:
1.
def
remove_2(item,seq):
2.
"""Seq é uma lista."""
3.
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:
1.
def
remove_3(item, seq):
2.
"""se for uma cadeia de caracteres."""
3.
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.
01.
def
remove_4(item, seq):
02.
"""Lista ou tuplo ou cadeia de caracteres."""
03.
if
isinstance(seq,str):
04.
return
seq.replace(item,'')
05.
elif
isinstance(seq,list):
06.
return
[elem
for
elem
in
seq
if
elem !
=
item]
07.
elif
isinstance(seq,tuple):
08.
return
tuple([elem
for
elem
in
seq
if
elem !
=
item])
09.
else
:
10.
print
'TypeError'
11.
return
seq
E pronto, já está!
Sem comentários:
Enviar um comentário