This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author dmitriym
Recipients dmitriym, docs@python
Date 2019-07-05.21:33:18
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1562362398.93.0.443192979272.issue37512@roundup.psfhosted.org>
In-reply-to
Content
There is an error in documentation about string concatenation:

https://docs.python.org/3/library/stdtypes.html

---
Common Sequence Operations
[...]
6. Concatenating immutable sequences always results in a new object. This means that building up a sequence by repeated concatenation will have a quadratic runtime cost in the total sequence length. To get a linear runtime cost, you must switch to one of the alternatives below:

- if concatenating str objects, you can build a list and use str.join() at the end or else write to an io.StringIO instance and retrieve its value when complete
---

It is not true for str objects anymore. Example using timeit module shows that time grows linearly:
>>> timeit('a+="a"', setup='a=""', number=10000)
0.0005754000012530014
>>> timeit('a+="a"', setup='a=""', number=100000)
0.005819800004246645

But for bytes it is still right:
>>> timeit('a+=b"a"', setup='a=b""', number=10000)
0.0017669000080786645
>>> timeit('a+=b"a"', setup='a=b""', number=100000)
0.20758410000416916
History
Date User Action Args
2019-07-05 21:33:18dmitriymsetrecipients: + dmitriym, docs@python
2019-07-05 21:33:18dmitriymsetmessageid: <1562362398.93.0.443192979272.issue37512@roundup.psfhosted.org>
2019-07-05 21:33:18dmitriymlinkissue37512 messages
2019-07-05 21:33:18dmitriymcreate