¿Cómo se pueden concatenar cadenas?

117

¿Cómo concatenar cadenas en Python?

Por ejemplo:

Section = 'C_type'

Concatenarlo con Sec_para formar la cadena:

Sec_C_type
Michelle
fuente

Respuestas:

183

La forma más fácil sería

Section = 'Sec_' + Section

Pero para mayor eficiencia, consulte: https://waymoot.org/home/python_string/

mpen
fuente
8
En realidad, parece que se ha optimizado desde el artículo que cita. De una prueba rápida con timeit, no pude reproducir los resultados.
tonfa
3
El OP solicitó Python 2.4 pero sobre la versión 2.7, Hatem Nassrat ha probado (julio de 2013) tres técnicas de concatenación donde +es más rápido cuando se concatenan menos de 15 cadenas, pero recomienda las otras técnicas: joiny %. (este comentario actual es solo para confirmar el comentario de @ tonfa anterior). Saludos;)
olibre
¿Qué sucede si desea una concatenación de cadenas de varias líneas?
pyCthon
@pyCthon: ¿Eh? Puede poner un salto de línea en una cadena usando \no puede hacer una continuación de línea en Python poniendo un \ al final de la línea.
mpen
44

también puedes hacer esto:

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

Esto le permite no solo agregar, sino también insertar en cualquier lugar de la cadena:

section = "C_type"
new_section = "Sec_%s_blah" % section
Rytis
fuente
Este método también le permite 'concat' un int a la cadena, lo cual no es posible directamente con +(requiere envolver el int en a str())
aland
28

Solo un comentario, ya que alguien puede encontrarlo útil: puede concatenar más de una cadena de una vez:

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

Las formas más eficientes de concatenar cadenas son:

unirse():

Muy eficiente, pero un poco difícil de leer.

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

Formato de cadena:

Fácil de leer y en la mayoría de los casos más rápido que la concatenación '+'

>>> Section = 'C_type'
>>> print 'Sec_%s' % Section
>>> 'Sec_C_type'
j7nn7k
fuente
Parece que unirse es el más rápido y eficiente demasiado waymoot.org/home/python_string
enthusiasticgeek
6

Úselo +para la concatenación de cadenas como:

section = 'C_type'
new_section = 'Sec_' + section
codaddict
fuente
2

Para casos de agregar al final de una cadena existente:

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

resultados en

Sec_C_type
Tom Howard
fuente