On Sun, May 18, 2008 at 07:06:10PM +0100, Matt Porter wrote regarding Compress 
a string:
> 
> Hi guys,
> 
> I'm trying to compress a string.
> E.g:
>  "AAAABBBC" -> "ABC"
> 
> The code I have so far feels like it could be made clearer and more  
> succinct, but a solution is currently escaping me.
> 
> 
> def compress_str(str):
>     new_str = ""
>     for i, c in enumerate(str):
>         try:
>             if c != str[i+1]:
>                 new_str += c
>         except IndexError:
>             new_str += c
>     return new_str
> 
> 
> Cheers
> Matt

def compress_str(s): 
    # str is a builtin keyword. Don't overload it.
        out = []
        for c in s:
                if out and c == out[-1]:
                        out.append(c) # This is faster than new_str += c
        return ''.join(out) 


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to