And Clover wrote:
Here's a simple one I've reinvented in my own apps often enough that it might be worth adding to the built-in split() method:
s.split(sep[, maxsplit[, pad]])
pad, if set True, would pad out the returned list with empty strings (strs/unicodes depending on returned datatype) so that the list was always (maxsplit+1) elements long. This allows one to do things like unpacking assignments:
user, hostname= address.split('@', 1, True)
without having to worry about exceptions when the number of ‘sep’s in the string is unexpectedly fewer than ‘maxsplit’.
I would make pad = <padding string>. Example use case: major,minor,micro = pyversion.split('.', 2, '0') # 3.0 = 3.0.0, etc. # or major,minor,micro = (int(s) for s in pyversion.split('.', 2, '0') ) I suppose a counter argument is than one could write (pyversion+'.0').split('.',2) Terry Jan Reedy