best way to remove leading zeros from a tuple like string
"Michael F. Stemper" <michael.stemper at gmail.com> writes:
> On 2018-05-20 16:19, Ben Bacarisse wrote:
>> bruceg113355 at gmail.com writes:
>>> 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
>> You could use a regexp:
>> import re
>> re.sub(r"(?<![0-9])0+(?=[0-9])", "", "(128, 020, 008, 255)")
>> I post this because I think it works (interesting corner cases are 10005
>> and 000),
> Seeing this makes me realize that mine will eliminate any numbers that
> are all leading zero, including '0'. Also, forms like '-0042' will be
> left unchanged.
I realised after posting the negatives won't work. Not, I suspect, an
issue for the OP but -0042 can certainly be said to have "leading
> Maybe splitting it into integer forms and sending each through
> str( int( ) ) would be the safest.
Yup. I gave a version of that method too which handles negative numbers
by accident (by leaving the - in place!). A better version would be
re.sub(r"-?[0-9]+", lambda m: str(int(m.group(0))), s)