"Michael F. Stemper" <michael.stem...@gmail.com> writes: > On 2018-05-20 16:19, Ben Bacarisse wrote: >> bruceg113...@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 zeros". > 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) <snip> -- Ben. -- https://mail.python.org/mailman/listinfo/python-list