Иногда вам нужно использовать понимание списка, чтобы преобразовать все в строку, включая сами строки.
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 может кэшировать строки и повторно использовать их. Но является ли это поведение гарантированным для любого значения строки?