best way to remove leading zeros from a tuple like string
bruceg113355 at gmail.com
bruceg113355 at gmail.com
Sun May 20 17:19:28 EDT 2018
On Sunday, May 20, 2018 at 5:01:08 PM UTC-4, Michael F. Stemper wrote:
> On 2018-05-20 14:54, bruceg113355 at gmail.com wrote:
> > Lets say I have the following tuple like string.
> > (128, 020, 008, 255)
> >
> > What is the best way to to remove leading zeroes and end up with the following.
> > (128, 20, 8, 255) -- I do not care about spaces
>
>
> I'd use a few regular expressions:
>
> >>> from re import sub
> >>> tuple = '(0128, 020, 008,012, 255)'
> >>> sub( " 0*", " ", tuple ) # leading zeroes following space(s)
> '(0128, 20, 8,012, 255)'
> >>> sub( ",0*", ",", tuple ) # leading zeroes following comma
> '(0128, 020, 008,12, 255)'
> >>> sub( "\(0*", "(", tuple ) # leading zeroes after opening parend
> '(128, 020, 008,012, 255)'
>
> Each step could be written as "tuple = sub( ..."
>
> >>> tuple = sub( " 0*", " ", tuple ) # following space(s)
> >>> tuple = sub( ",0*", ",", tuple ) # following comma
> >>> tuple = sub( "\(0*", "(", tuple ) # after opening parend
> >>> tuple
> '(128, 20, 8,12, 255)'
> >>>
>
>
> Or, if you like to make your code hard to read and maintain, you could
> combine them all into a single expression:
>
> >>> sub( " 0*", " ", sub( ",0*", ",", sub( "\(0*", "(", tuple ) ) )
> '(128, 20, 8,12, 255)'
> >>>
>
> --
> Michael F. Stemper
> What happens if you play John Cage's "4'33" at a slower tempo?
I did not think about using regular expressions.
After your response, I looked into regular expressions and also found Regex.Replace
After thinking about my question, I said why not use a replace statement.
This works for me: mytuplestring.replace("0","")
Thanks for a good starting point:)
Bruce
More information about the Python-list
mailing list