[Python-Dev] replace on empty strings (original) (raw)
Tim Peters tim.peters at gmail.com
Thu May 25 03:33:11 CEST 2006
- Previous message: [Python-Dev] replace on empty strings
- Next message: [Python-Dev] replace on empty strings
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
[/F]
so, which one is correct ?
Python 2.4.3 >>> "".replace("", "a") '' >>> u"".replace(u"", u"a") u'a'
[Greg Ewing]
Probably there shouldn't be any "correct" in this case, i.e. the result of replacing an empty string should be undefined (because any string contains infinitely many empty substrings).
Where are they? For a string s, I count s[0:0], s[1:1], ..., s[len(s):len(s)], or len(s)+1 empty substrings in all.
While str and unicode replace
currently disagree about that when
len(s)==0, they agree when len(s)>0:
" ".replace("", "A") 'A A' u" ".replace("", "A") u'A A'
+0 on raising an exception if you try.
I'd be +1, except the idea that there are len(s)+1 empty substrings in a string is pretty much ubiquitous:
"" in "" True u"" in u"" True "".index("") 0 u"".index(u"") 0 " ".rindex("") 1 u" ".rindex(u"") 1 "".count("") 1 u"".count(u"") 1 " ".count("") 2 u" ".count(u"") 2
So the current str.replace really is an oddball.
- Previous message: [Python-Dev] replace on empty strings
- Next message: [Python-Dev] replace on empty strings
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]