Come si possono concatenare le stringhe?


117

Come concatenare le stringhe in Python?

Per esempio:

Section = 'C_type'

Concatenalo con Sec_per formare la stringa:

Sec_C_type

Risposte:


183

Il modo più semplice sarebbe

Section = 'Sec_' + Section

Ma per l'efficienza, vedere: https://waymoot.org/home/python_string/


8
In realtà sembra essere stato ottimizzato rispetto all'articolo che citi. Da un rapido test con timeit, non sono stato in grado di riprodurre i risultati.
tonfa

3
L'OP ha chiesto Python 2.4 ma riguardo alla versione 2.7, Hatem Nassrat ha testato (luglio 2013) tre tecniche di concatenazione dove +è più veloce quando si concatenano meno di 15 stringhe ma raccomanda le altre tecniche: joine %. (questo commento attuale è solo per confermare il commento di @ tonfa sopra). Saluti;)
olibre

Cosa succede se si desidera una concatenazione di stringhe su più righe?
pyCthon

@pyCthon: eh? Puoi inserire un'interruzione di riga in una stringa usando \no puoi fare una continuazione di riga in Python mettendo un \ alla fine della riga.
mpen

44

puoi anche fare questo:

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

Ciò ti consente non solo di aggiungere, ma anche di inserire ovunque nella stringa:

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

Questo metodo ti consente anche di 'concatare' un int in una stringa, cosa che non è possibile direttamente con +(richiede di racchiudere l'int in a str())
aland

28

Solo un commento, poiché qualcuno potrebbe trovarlo utile: puoi concatenare più di una stringa in una volta sola:

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

24

Metodi più efficienti per concatenare le stringhe sono:

aderire():

Molto efficiente, ma un po 'difficile da leggere.

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

Formattazione delle stringhe:

Facile da leggere e nella maggior parte dei casi più veloce della concatenazione "+"

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

Sembra che partecipare sia anche il più veloce ed efficiente waymoot.org/home/python_string
entusiasticgeek

6

Utilizzare +per la concatenazione di stringhe come:

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


2

Per i casi di aggiunta alla fine di una stringa esistente:

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

risultati in

Sec_C_type
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.