[Python-ideas] Add an option for delimiters in bytes.hex()
Erik
python at lucidity.plus.com
Tue May 2 21:48:03 EDT 2017
On 03/05/17 01:43, Steven D'Aprano wrote:
> On Tue, May 02, 2017 at 11:39:48PM +0100, Erik wrote:
>> On 02/05/17 12:31, Steven D'Aprano 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:
>
> For the record, I now think the second argument should be called "sep",
> for separator, and I'm okay with Greg's suggestion we call the method
> "group".
>
>
>>> "1234ABCDEF".chunk(4)
>>> => returns "1234 ABCD EF"
> [...]
>
>> Why do you want to limit it to strings?
>
> I'm not stopping anyone from proposing a generalisation of this that
> works with other sequence types. As somebody did :-)
Who? I didn't spot that in the thread - please give a reference. Thanks.
Anyway, I know you can't stop anyone from *proposing* something like
this, but as soon as they do you may decide to quote the recipe from
"https://docs.python.org/3/library/functions.html#zip" and try to block
their proposition. There are already threads on fora that do that.
That was my sticking point at the time when I implemented a general
solution. Why bother to propose something that (although it made my code
significantly faster) had already been blocked as being something that
should be a python-level operation and not something to be included in a
built-in?
> String methods should return strings.
In that case, we need to fix this ASAP ;) :
>>> 'foobarbaz'.split('o')
['f', '', 'barbaz']
Where the result is reasonably a sequence, a method should return a
sequence (but I would agree that it should generally be a sequence of
objects of the source type - which I think is what I effectively said:
"Isn't something like this potentially useful for all sequences (where
the result is a [sequence] of objects that are the same [type] as the
source sequence)"
> That's not to argue against a generic iterator solution, but the barrier
> to use of an iterator solution is higher than just calling a method.
Knowing which sequence classes have a "chunk" method and which don't is
a higher barrier than knowing that all sequences can be "chunked" by a
single imported function.
E.
More information about the Python-ideas
mailing list