Steve D'Aprano wrote: > On Sat, 2 Sep 2017 03:13 am, Ganesh Pal wrote: > >> Example : >> >> "a0000" and "1" => a0001 >> >> "a0000" and "aa" => c00aa > > Why does the leading 'a' change to a 'c'? Is that a mistake? I'll assume > its a typo. > > You want string slicing. > > base = 'a0000' > extra = 'ab'
assert len(extra) > print( base[:-len(extra)] + extra ) or base[:-len(extra) or None] + extra if you need to handle the extra = "" case. Another option is a template: >>> "a{:0>4}".format("") 'a0000' >>> "a{:0>4}".format("xy") 'a00xy' >>> "a{:0>4}".format("xyztu") 'axyztu' This can be modified to limit its arg by specifying a precision: >>> "a{:0>4.4}".format("xyztu") 'axyzt' -- https://mail.python.org/mailman/listinfo/python-list