Wie können Strings verkettet werden?

117

Wie verkette ich Strings in Python?

Beispielsweise:

Section = 'C_type'

Verketten Sie es mit Sec_, um die Zeichenfolge zu bilden:

Sec_C_type
Michelle
quelle

Antworten:

183

Der einfachste Weg wäre

Section = 'Sec_' + Section

Informationen zur Effizienz finden Sie unter: https://waymoot.org/home/python_string/

mpen
quelle
8
Eigentlich scheint es seit dem Artikel, den Sie zitieren, optimiert worden zu sein. Nach einem kurzen Test mit timeit konnte ich die Ergebnisse nicht reproduzieren.
Tonfa
3
Das OP fragte nach Python 2.4, aber über Version 2.7 hat Hatem Nassrat (Juli 2013) drei Verkettungstechniken getestet , bei +denen weniger als 15 Zeichenfolgen schneller verkettet werden. Er empfiehlt jedoch die anderen Techniken: joinund %. (Dieser aktuelle Kommentar dient nur zur Bestätigung des obigen Kommentars von @ tonfa). Prost;)
Olibre
Was passiert, wenn Sie eine mehrzeilige Zeichenfolgenverkettung wünschen?
PyCthon
@pyCthon: Huh? Sie können einen Zeilenumbruch in eine Zeichenfolge einfügen \noder eine Zeilenfortsetzung in Python durchführen, indem Sie am Ende der Zeile ein \ einfügen.
Mpen
44

Sie können dies auch tun:

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

Auf diese Weise können Sie nicht nur anhängen, sondern auch überall in der Zeichenfolge einfügen:

section = "C_type"
new_section = "Sec_%s_blah" % section
Rytis
quelle
Mit dieser Methode können Sie auch auf ‚concat‘ int bespannen, was nicht möglich ist direkt mit +(erfordert das int in eine Verpackung str())
Aland
28

Nur ein Kommentar, wie ihn jemand vielleicht nützlich findet - Sie können mehr als eine Zeichenfolge auf einmal verketten:

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

Effizientere Möglichkeiten zum Verketten von Zeichenfolgen sind:

beitreten():

Sehr effizient, aber etwas schwer zu lesen.

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

String-Formatierung:

Einfach zu lesen und in den meisten Fällen schneller als '+' Verkettung

>>> Section = 'C_type'
>>> print 'Sec_%s' % Section
>>> 'Sec_C_type'
j7nn7k
quelle
Scheint, als wäre Join der schnellste und effizienteste Weg. Waymoot.org/home/python_string
enthusiasticgeek
6

Verwendung +für die Verkettung von Zeichenfolgen als:

section = 'C_type'
new_section = 'Sec_' + section
Codaddict
quelle
2

Für Fälle des Anhängens an das Ende einer vorhandenen Zeichenfolge:

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

führt zu

Sec_C_type
Tom Howard
quelle