[Python-ideas] Add an option for delimiters in bytes.hex()
David Mertz
mertz at gnosis.cx
Tue May 2 13:48:08 EDT 2017
On Tue, May 2, 2017 at 4:31 AM, Steven D'Aprano <steve at pearwood.info> wrote:
> Rather than duplicate the API and logic everywhere, I suggest we add a
> new string method. My suggestion is str.chunk(size, delimiter=' ') and
> str.rchunk() with the same arguments:
>
> "1234ABCDEF".chunk(4)
> => returns "1234 ABCD EF"
>
> rchunk will be useful for money or other situations where we group from
> the right rather than from the left:
>
> "$" + str(10**6).rchunk(3, ',')
> => returns "$1,000,000"
>
> # Format mobile phone number in the Australian style
> "04123456".rchunk((4, 3))
> => returns "0412 345 678"
>
> # Format an integer in the Indian style
> str(123456789).rchunk((3, 2), ",")
> => returns "12,34,56,789"
>
I like this general idea very much. Dealing with lakh and crore is a very
nice feature (and one that the `.format()` mini-language sadly fails to
handle; it assumes numeric delimiters can only be commas, and only ever
three positions).
But I'm not sure the semantics you propose is flexible enough. I take it
that the tuple means (<first-delimiter>, <other-delimiters>) from your
examples. But I don't think that suffices for every common format. It
would be fine to get a USA phone number like:
str(4135559414).rchunk((4,3),'-') # -> 413-555-9414
But for example, looking somewhat at random at an international call (
https://en.wikipedia.org/wiki/Telephone_numbers_in_Belgium)
*Dialing from New York to Brussel**011-32-2-555-12-12* - Omitting the
leading "0".
Maybe your API is for any length tuple, with the final element repeated.
So I guess maybe this example could be:
"0113225551212".rchunk((2,2,3,1,2,3),'-')
I don't care about this method being called .chunk() vs. .delimit() vs.
something else.
--
Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons. Intellectual property is
to the 21st century what the slave trade was to the 16th.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170502/55d29cfc/attachment.html>
More information about the Python-ideas
mailing list