Jak można łączyć ciągi?

117

Jak połączyć ciągi znaków w Pythonie?

Na przykład:

Section = 'C_type'

Połącz go z, Sec_aby utworzyć ciąg:

Sec_C_type
Michelle
źródło

Odpowiedzi:

183

Najprościej byłoby

Section = 'Sec_' + Section

Ale dla wydajności zobacz: https://waymoot.org/home/python_string/

mpen
źródło
8
Właściwie wydaje się, że został zoptymalizowany od czasu cytowanego artykułu. Po szybkim teście z czasem nie byłem w stanie odtworzyć wyników.
tonfa
3
OP poprosił o Python 2.4, ale o wersji 2.7 Hatem Nassrat przetestował (lipiec 2013) trzy techniki łączenia, w których +jest szybszy przy konkatenacji mniej niż 15 ciągów, ale zaleca inne techniki: joini %. (ten aktualny komentarz ma na celu tylko potwierdzenie komentarza @ tonfa powyżej). Pozdrawiam;)
olibre
Co się stanie, jeśli chcesz uzyskać wieloliniową konkatenację ciągów?
pyCthon
@pyCthon: Hę? Możesz wstawić znak \nkońca wiersza w ciągu za pomocą lub możesz zrobić kontynuację wiersza w Pythonie, umieszczając \ na końcu wiersza.
otwarte
44

możesz też to zrobić:

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

To pozwala nie tylko dodawać, ale także wstawiać w dowolnym miejscu w ciągu:

section = "C_type"
new_section = "Sec_%s_blah" % section
rytis
źródło
Ta metoda pozwala również na „konkatację” int do łańcucha, co nie jest możliwe bezpośrednio z +(wymaga zawinięcia int w a str())
aland
28

Tylko komentarz, ponieważ ktoś może uznać to za przydatne - możesz połączyć więcej niż jeden ciąg za jednym razem:

>>> a='rabbit'
>>> b='fox'
>>> print '%s and %s' %(a,b)
rabbit and fox
Juliusz
źródło
24

Bardziej wydajne sposoby łączenia ciągów to:

Przystąp():

Bardzo skuteczny, ale trochę trudny do odczytania.

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

Formatowanie ciągów:

Łatwy do odczytania iw większości przypadków szybszy niż łączenie „+”

>>> Section = 'C_type'
>>> print 'Sec_%s' % Section
>>> 'Sec_C_type'
j7nn7k
źródło
Wygląda na to, dołącz to najszybszy i skuteczny zbyt waymoot.org/home/python_string
enthusiasticgeek
6

Użyj +do konkatenacji ciągów jako:

section = 'C_type'
new_section = 'Sec_' + section
codaddict
źródło
2

W przypadku dołączania do końca istniejącego ciągu:

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

prowadzi do

Sec_C_type
Tom Howard
źródło