A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2006-May/065158.html below:

[Python-Dev] replace on empty strings

[Python-Dev] replace on empty stringsTim Peters tim.peters at gmail.com
Thu May 25 03:33:11 CEST 2006
[/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.
More information about the Python-Dev mailing list

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