Làm thế nào để các chuỗi có thể được nối?


117

Làm thế nào để nối các chuỗi trong python?

Ví dụ:

Section = 'C_type'

Nối nó với Sec_để tạo thành chuỗi:

Sec_C_type

Câu trả lời:


183

Cách dễ nhất sẽ là

Section = 'Sec_' + Section

Nhưng để hiệu quả, hãy xem: https://waymoot.org/home/python_string/


8
Trên thực tế nó dường như đã được tối ưu hóa kể từ bài báo bạn trích dẫn. Từ một bài kiểm tra nhanh với thời gian, tôi không thể tạo lại kết quả.
tonfa

3
OP hỏi cho Python 2.4 nhưng về phiên bản 2.7, Hatem Nassrat đã thử nghiệm (July 2013) ba kỹ thuật nối nơi +là nhanh hơn khi concatenating dưới 15 chuỗi nhưng ông khuyến cáo các kỹ thuật khác: join%. (bình luận hiện tại này chỉ để xác nhận bình luận của @ tonfa ở trên). Chúc mừng;)
olibre

Điều gì xảy ra nếu bạn muốn nối chuỗi nhiều dòng?
pyCthon

@pyCthon: Hả? Bạn có thể đặt dấu ngắt dòng trong một chuỗi bằng cách sử dụng \nhoặc bạn có thể tiếp tục dòng trong Python bằng cách đặt dấu \ ở cuối dòng.
mpen

44

bạn cũng có thể làm điều này:

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

Điều này cho phép bạn không chỉ nối thêm mà còn chèn vào bất kỳ đâu trong chuỗi:

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

Phương pháp này cũng cho phép bạn 'concat' một int để chuỗi, đó là không thể trực tiếp với +(yêu cầu gói các int trong một str())
Aland

28

Chỉ là một nhận xét, vì ai đó có thể thấy nó hữu ích - bạn có thể nối nhiều chuỗi trong một lần:

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

24

Các cách nối chuỗi hiệu quả hơn là:

tham gia():

Rất hiệu quả, nhưng hơi khó đọc.

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

Định dạng chuỗi:

Dễ đọc và trong hầu hết các trường hợp, nhanh hơn so với nối '+'

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

Có vẻ như tham gia là cách nhanh nhất và hiệu quả quá waymoot.org/home/python_string
hăng hái

6

Sử dụng +để nối chuỗi như:

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


2

Đối với các trường hợp nối vào cuối chuỗi hiện có:

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

kết quả trong

Sec_C_type
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.