Pouvez-vous décrire la différence entre deux modes de concaténation de chaînes: opérateur __add__
simple et modèles %s
? J'ai eu quelques recherches dans cette question et trouvé %s
(sous forme sans utiliser de parenthèses) un peu plus vite.Chaîne de concaténation en Python
Une autre question est apparue: pourquoi le résultat de 'hell%s' % 'o'
fait référence à une autre région de mémoire que 'hell%s' % ('o',)
?
Il y a un exemple de code:
l = ['hello', 'hell' + 'o', 'hell%s' % 'o', 'hell%s' % ('o',)]
print [id(s) for s in l]
Résultat:
[34375618400, 34375618400, 34375618400, 34375626256]
post-scriptum Je connais l'internalisation de chaînes :)
Je pense que vous devriez le tester avec des variables, je soupçonne que ces utilisations simples pourraient être optimisées au stade de la compilation; je suppose que la forme '% s' est toujours plus lente si le motif est une chaîne variable – UncleZeiv