Python字符串连接在linux和windows中花费的时间不同

Python字符串连接在linux和windows中花费的时间不同,python,python-3.x,Python,Python 3.x,我试着在Windows10和Python 3.6上的Ubuntu上运行字符串连接。 Ubuntu需要2-3秒的时间,而Windows则需要很长的时间。Windows和Ubuntu都在同一台机器上 content='' for i in range(10000000): content+='SomeString' 为什么会这样?字符串是不可变的。将一个字符串放入内存位置并将其分配给变量。然后将其副本连接到另一个字符串,将其放入其他内存位置,并使变量内容指向新的内存位置。为字符串连续分配新

我试着在Windows10和Python 3.6上的Ubuntu上运行字符串连接。 Ubuntu需要2-3秒的时间,而Windows则需要很长的时间。Windows和Ubuntu都在同一台机器上

content=''
for i in range(10000000):
    content+='SomeString'

为什么会这样?

字符串是不可变的。将一个字符串放入内存位置并将其分配给变量。然后将其副本连接到另一个字符串,将其放入其他内存位置,并使变量内容指向新的内存位置。为字符串连续分配新内存空间的行为在循环中花费时间。

您应该精确地回答您的问题,这似乎是正确的
为什么会这样?
一个更好的问题是:为什么要重复连接字符串?使用
'.join('SomeString'表示范围(10000000))
,则不会创建999999个冗余的中间字符串。@jornsharpe我肯定会使用它。但我只是想知道为什么Linux和Windows上的操作系统不同,因为Ubuntu和Windows是不同的操作系统(并且内核不同)。这还不够吗?为什么Linux的情况不是这样,但这并不是Windows和Ubuntu使用不同时间的原因Ubuntu在这个场景中做的更好的内存分配和管理。ubuntu和windows中的编译器是什么?