[Python-ideas] Add an option for delimiters in bytes.hex()
carl.input at gmail.com
Tue May 2 14:46:57 EDT 2017
The main reason for naming it `delimit` was to be consistent with the karg
`delimiter`, so `str.delimit(index, delimiter)`. You could call it `chop` I
guess, but I'm just bikeshedding, so will leave it while you guys figure
out the important stuff.
-- Carl Smith
carl.input at gmail.com
On 2 May 2017 at 18:48, David Mertz <mertz at gnosis.cx> wrote:
> On Tue, May 2, 2017 at 4:31 AM, Steven D'Aprano <steve at pearwood.info>
>> 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:
>> => 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 <(413)%20555-9414>).rchunk((4,3),'-') # ->
> 413-555-9414 <(413)%20555-9414>
> But for example, looking somewhat at random at an international call (
> *Dialing from New York to Brussel**011-32-2-555-12-12 <+32%202%20555%2012%2012>* - 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 <+32%202%20555%2012%2012>".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.
> Python-ideas mailing list
> Python-ideas at python.org
> Code of Conduct: http://python.org/psf/codeofconduct/
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas