Pyhon 2.x or 3.x, which is faster?

Michael Torrie torriem at gmail.com
Fri Mar 11 20:15:36 EST 2016


On 03/11/2016 03:24 PM, BartC wrote:
> On 11/03/2016 21:59, Mark Lawrence wrote:
>> On 11/03/2016 18:57, BartC wrote:
> 
>> def test():
>>      s=""
>>      for i in range(10000000):
>>          s+="*"
>>      print (len(s))
>>
>> test()
> 
>> The minor snag that you might like to correct with your microbenchmark,
>> which any experienced Python programmer knows, is that you *NEVER, EVER*
>> create strings like this.
> 
> Why not? Chris said his version runs much faster (even allowing for 
> different machines), and might have a special optimisation for it.
> 
> And I think it can be optimised if, for example, there are no other 
> references to the string that s refers to.
> 
> So what's wrong with trying to fix it rather that using a workaround?

The act of "fixing" it, as you say, would change the semantics of the
language in a fundamental and major way.  Strings by definition are
immutable in Python.  If you need otherwise, there are other better
tools such as a buffer object of some kind, or StringIO which makes
file-like objects you can read and write to randomly.




More information about the Python-list mailing list