สตริงสามารถต่อกันได้อย่างไร?


117

วิธีการต่อสตริงใน python

ตัวอย่างเช่น:

Section = 'C_type'

เชื่อมต่อกับSec_เพื่อสร้างสตริง:

Sec_C_type

คำตอบ:


183

วิธีที่ง่ายที่สุดก็คือ

Section = 'Sec_' + Section

แต่เพื่อประสิทธิภาพโปรดดู: https://waymoot.org/home/python_string/


8
จริงๆแล้วดูเหมือนว่าจะได้รับการปรับให้เหมาะสมตั้งแต่บทความที่คุณอ้างถึง จากการทดสอบอย่างรวดเร็วด้วยเวลาฉันไม่สามารถสร้างผลลัพธ์ได้
tonfa

3
OP ขอ Python 2.4 แต่เกี่ยวกับเวอร์ชัน 2.7 Hatem Nassrat ได้ทดสอบ (กรกฎาคม 2013) เทคนิคการเชื่อมต่อสามแบบซึ่ง+จะเร็วกว่าเมื่อเชื่อมต่อน้อยกว่า 15 สตริง แต่เขาแนะนำเทคนิคอื่น ๆ : joinและ%. (ความคิดเห็นปัจจุบันนี้เป็นเพียงเพื่อยืนยันความคิดเห็นของ @ tonfa ด้านบน) ไชโย;)
olibre

จะเกิดอะไรขึ้นถ้าคุณต้องการเชื่อมต่อสตริงหลายบรรทัด
pyCthon

@pyCthon: หือ? คุณสามารถใส่ตัวแบ่งบรรทัดในสตริงโดยใช้\nหรือคุณสามารถสร้างความต่อเนื่องของบรรทัดใน Python ได้โดยใส่ \ ที่ท้ายบรรทัด
mpen

44

คุณยังสามารถทำได้:

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

สิ่งนี้ช่วยให้คุณไม่เพียงต่อท้าย แต่ยังแทรกที่ใดก็ได้ในสตริง:

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

วิธีนี้ยังช่วยให้คุณ 'concat' เป็น int สตริงซึ่งเป็นไปไม่ได้โดยตรงกับ+(ต้องห่อ int ในstr())
Aland

28

เพียงแค่แสดงความคิดเห็นเนื่องจากอาจมีคนเห็นว่ามีประโยชน์คุณสามารถต่อสายอักขระได้มากกว่าหนึ่งสตริงในครั้งเดียว:

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

24

วิธีที่มีประสิทธิภาพมากขึ้นในการต่อสตริง ได้แก่ :

เข้าร่วม ():

มีประสิทธิภาพมาก แต่อ่านยากไปหน่อย

>>> 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
กระตือรือร้น



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.