removing duplicate spaces from a string

Ron Johnson ron.l.johnson at home.com
Mon Aug 6 16:13:36 EDT 2001


Thanks to all for this idea.

xauau wrote:

> Ron Johnson <ron.l.johnson at home.com> writes:
> 
>> Hello,
>> 
>> Say I have the strings:
>>   'foo   bar      snafu'
>>   'fiddle     faddle  pip  pop'
>> 
>> Are there any builtins that will allow me to compress the
>> duplicate spaces out so that the files look like:
>>   'foo bar snafu'
>>   'fiddle faddle pip pop'
>> 
>> I could iteratively apply string.replace, replacing '  ' with
>> ' ', but that doesn't seem the optimum course.
> 
> An easier way is to use split and join together:
> 
> 'split' will partition a string into a list items, separated by
> whatever character(s) you like. (Defaults to space).
> 
> s = 'foo  bar     snafu'
> s.split() -> ['foo', 'bar', 'snafu']
> 
> Now you can use 'join' to join these list items together into a new
> strng, with a single space (or anything else you want) between them:
> 
> ' '.join(['foo', 'bar', 'snafu']) -> 'foo bar snafu'
> 'XXX'.join(['foo', 'bar', 'snafu']) -> 'fooXXXbarXXXsnafu'
> 
> 
> So the following one-liner will do what you need:
> 
> ' '.join(s.split())




More information about the Python-list mailing list