Message347390
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 |
|
Date |
User |
Action |
Args |
2019-07-05 21:33:18 | dmitriym | set | recipients:
+ dmitriym, docs@python |
2019-07-05 21:33:18 | dmitriym | set | messageid: <1562362398.93.0.443192979272.issue37512@roundup.psfhosted.org> |
2019-07-05 21:33:18 | dmitriym | link | issue37512 messages |
2019-07-05 21:33:18 | dmitriym | create | |
|