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