Deleting specific characters from a string

Walter Dörwald walter at livinglogic.de
Thu Jul 10 00:01:32 CEST 2003


Behrang Dadsetan wrote:

> Walter Dörwald wrote:
> 
>> Behrang Dadsetan wrote:
>>
>>> Hi all,
>>>
>>> I would like deleting specific characters from a string.
>>> As an example, I would like to delete all of the '@' '&' in the 
>>> string 'You are ben at orange?enter&your&code' so that it becomes 
>>> 'benorange?enteryourcode'.
>>>
>>> So far I have been doing it like:
>>> str = 'You are ben at orange?enter&your&code'
>>> str = ''.join([ c for c in str if c not in ('@', '&')])
>>>
>>> but that looks so ugly.. I am hoping to see nicer examples to acheive 
>>> the above..
>>
>>
>>
>> What about the following:
>>
>> str = 'You are ben at orange?enter&your&code'
>> str = filter(lambda c: c not in "@&", str)
>>
>> Bye,
>>    Walter Dörwald 
> 
> 
> def isAcceptableChar(character):
>    return charachter in "@&"
> 
> str = filter(isAcceptableChar, str)
> 
> is going to finally be what I am going to use.
> I not feel lambdas are so readable, unless one has serious experience in 
> using them and python in general. I feel it is acceptable to add a named 
> method that documents with its name what it is doing there.

You're not the only one with this feeling. Compare "the eff-bot's
favourite lambda refactoring rule":

http://groups.google.de/groups?selm=3wFx6.2498%24sk3.826353%40newsb.telia.net

> [...]

Bye,
    Walter Dörwald





More information about the Python-list mailing list