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

Antworten:


183

Der einfachste Weg wäre

Section = 'Sec_' + Section

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


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

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

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'

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.