Як можна об'єднати рядки?


117

Як об'єднати рядки в python?

Наприклад:

Section = 'C_type'

Об’єднайте його з Sec_формуванням рядка:

Sec_C_type

Відповіді:


183

Найпростіше було б

Section = 'Sec_' + Section

Але про ефективність дивіться: https://waymoot.org/home/python_string/


8
Насправді, схоже, це було оптимізовано з моменту статті, яку ви цитуєте. З швидкого тесту з timeit я не зміг відтворити результати.
tonfa

3
ОП попросив Python 2.4, але щодо версії 2.7 Хатем Нассрат випробував (липень 2013 р.) Три методи конкатенації, де +швидше при об'єднанні менше 15 рядків, але він рекомендує інші методи: joinі %. (цей поточний коментар лише для підтвердження коментаря @ tonfa вище). Ура;)
олібре

Що станеться, якщо ви хочете з'єднання рядків з рядками?
pyCthon

@pyCthon: А? Ви можете поставити розрив рядка в рядку, використовуючи \nабо продовжити продовження рядка в Python, поставивши \ в кінці рядка.
вересня 1313

44

Ви також можете зробити це:

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

Це дозволяє не тільки додавати, але і вставляти кудись у рядок:

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

Цей метод також дозволяє "конкретувати" int для рядка, що неможливо безпосередньо +(вимагає загортання int в a str())
aland

28

Просто коментар, оскільки хтось може вважати його корисним - ви можете об'єднати більше одного рядка за один раз:

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

24

Більш ефективними способами об'єднання рядків є:

join ():

Дуже ефективно, але трохи важко читати.

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

Форматування рядків:

Легко читати і в більшості випадків швидше, ніж "+" об'єднання

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

Здається, що приєднання - це найшвидший і найефективніший занадто waymoot.org/home/python_string
ентузіазм



2

Для випадків приєднання до кінця існуючого рядка:

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

призводить до

Sec_C_type
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.