Re:Python 3 makes it easier to develop high-quality software
by lqdc13 on Wednesday November 18, 2015 @08:43PM
(#10592196)
I don't have a reference, but bytearray concatenation with some more bytes is amortized O(1) w.r.t. original bytearray size, but for bytes it is O(n) where n is the length of the byte string, because bytes are immutable and they are copied to a new byte string on each concatenation.
In python2 strings/bytes are also immutable but concatenation is O(1) w.r.t. original string.
Not sure about internal implementation differences.
so basically whenever you see code like:
some_bstr = b''
for something in get_something():
some_bstr += something
And if you have to do it this way, make sure that some_bstr is a bytearray or make it a list that you later join.
In python2 strings/bytes are also immutable but concatenation is O(1) w.r.t. original string. Not sure about internal implementation differences.
so basically whenever you see code like:
And if you have to do it this way, make sure that some_bstr is a bytearray or make it a list that you later join.