如果一个值已经是字符串,我是否应该避免将其转换为字符串?

9 浏览
0 Comments

如果一个值已经是字符串,我是否应该避免将其转换为字符串?

有时候你需要使用列表推导来将所有的东西都转换成字符串,包括字符串本身。

b = [str(a) for a in l]

但是我是否需要这样做:

b = [a if type(a)==str else str(a) for a in l]

我想知道对于字符串来说,str是否被优化得足够好,以至于不会创建另一个字符串的副本。

我尝试过:

>>> x="aaaaaa"
>>> str(x) is x
True

但是这可能是因为Python可以缓存字符串并重复使用它们。但这种行为对于任何字符串的值都是保证的吗?

0