Comment les chaînes peuvent-elles être concaténées?


117

Comment concaténer des chaînes en python?

Par exemple:

Section = 'C_type'

Concaténez-le avec Sec_pour former la chaîne:

Sec_C_type

Réponses:


183

Le moyen le plus simple serait

Section = 'Sec_' + Section

Mais pour plus d'efficacité, voir: https://waymoot.org/home/python_string/


8
En fait, il semble avoir été optimisé depuis l'article que vous citez. À partir d'un test rapide avec timeit, je n'ai pas pu reproduire les résultats.
tonfa

3
L'OP a demandé Python 2.4 mais à propos de la version 2.7, Hatem Nassrat a testé (juillet 2013) trois techniques de concaténation+est plus rapide en concaténant moins de 15 chaînes mais il recommande les autres techniques: joinet %. (ce commentaire actuel est juste pour confirmer le commentaire de @ tonfa ci-dessus). Cheers;)
olibre

Que se passe-t-il si vous souhaitez une concaténation de chaînes sur plusieurs lignes?
pyCthon

@pyCthon: Hein? Vous pouvez mettre un saut de ligne dans une chaîne en utilisant \nou vous pouvez faire une continuation de ligne en Python en mettant un \ à la fin de la ligne.
mpen

44

vous pouvez également faire ceci:

section = "C_type"
new_section = "Sec_%s" % section

Cela vous permet non seulement d'ajouter, mais également d'insérer n'importe où dans la chaîne:

section = "C_type"
new_section = "Sec_%s_blah" % section

Cette méthode vous permet également de `` concater '' un int en chaîne, ce qui n'est pas possible directement avec +(nécessite d'encapsuler l'int dans a str())
aland

28

Juste un commentaire, car quelqu'un peut le trouver utile - vous pouvez concaténer plus d'une chaîne en une seule fois:

>>> a='rabbit'
>>> b='fox'
>>> print '%s and %s' %(a,b)
rabbit and fox

24

Des moyens plus efficaces de concaténer des chaînes sont:

joindre():

Très efficace, mais un peu difficile à lire.

>>> Section = 'C_type'  
>>> new_str = ''.join(['Sec_', Section]) # inserting a list of strings 
>>> print new_str 
>>> 'Sec_C_type'

Formatage de chaîne:

Facile à lire et dans la plupart des cas plus rapide que la concaténation '+'

>>> Section = 'C_type'
>>> print 'Sec_%s' % Section
>>> 'Sec_C_type'

On dirait que join est le plus rapide et le plus efficace waymoot.org/home/python_string
enthousiasticgeek

6

Utilisez +pour la concaténation de chaînes comme:

section = 'C_type'
new_section = 'Sec_' + section


2

Pour les cas d'ajout à la fin d'une chaîne existante:

string = "Sec_"
string += "C_type"
print(string)

résulte en

Sec_C_type
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.