> > > Greg Wilson: > > > if "abbc"[-1] is "c", and if > > > "abbc".replace("b", "x", 1) is "axbc", then shouldn't > > > "abbc".replace("b", "x", -1) be "abxc" (i.e. negative > > > numbers replace the *last* occurrences of the value)? > > > Same argument for "split", etc. > > >>> path = "/some/long/path/to/file.html" > > >>> main, parent, file = path.split("/", -2) > > >>> main > > "/some/long/path" > > >>> parent > > "to" > > >>> file > > "file.html" > > Guido van Rossum: > OK, that's an example. It's only so-so, because you should be using > os.path.split() anyway. It's done best as follows: > > temp, file = os.path.split(path) > main, parent = os.path.split(temp) Greg Wilson: Or "main, parent, file = os.path.split(path, -2)" :-) > > Greg Wilson again: > > Question still stands --- if these are counts, then shouldn't > > negative values raise exceptions? > > Given that it's documented with the name "maxsplit", it's not > unreasonable that -1 is treated the same as 0. Greg Wilson: But it isn't: >>> print sys.version 2.2a0 (#2, Apr 20 2001, 12:53:03) [GCC 2.95.2 19991024 (release)] >>> "abbc".replace("b", "x", 0) 'abbc' >>> "abbc".replace("b", "x", -1) 'axxc' Thanks, Greg
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4