Python มีฟังก์ชัน built-in str.join() สำหรับรวมสมาชิกใน sequence ให้เป็นสตริง โดยใส่ separator (ตัวคั่น) ระหว่างสมาชิก หากไม่ต้องการ separator ใช้สตริงว่าง ''
ตัวอย่าง: รวมโดยไม่มีตัวคั่น
>> lst = ['h', 'e', 'l', 'l', 'o'] >>> ''.join(lst) 'hello'
ตัวอย่าง: รวมด้วยตัวคั่น
>> ', '.join(['apple', 'banana', 'cherry']) 'apple, banana, cherry' >>> '-'.join(['2024', '01', '15']) '2024-01-15'
ข้อจำกัด
- สมาชิกทุกตัวใน iterable ต้องเป็น สตริง เท่านั้น
- หากมีตัวเลข ต้องแปลงก่อน:
''.join(map(str, [1, 2, 3]))→'123'
ประสิทธิภาพ
join() เร็วกว่าการใช้ + ในลูปมาก เพราะ + สร้างสตริงใหม่ทุกรอบ (O(n²)) ในขณะที่ join() คำนวณขนาดรวมแล้ว allocate ครั้งเดียว (O(n))