โจทย์: แปลงลิสต์ (List) เป็นสตริง (String)
วิธีที่ 1: Loop + Concatenation (Naive)
def listToString(s):
str_ = ""
for ele in s:
str_ += ele
return str_
print(listToString(['Tutorials', 'Point'])) # TutorialsPoint
วิธีที่ 2: str.join() (แนะนำมากที่สุด)
def listToString(s):
return ''.join(s)
print(listToString(['Tutorials', 'Point'])) # TutorialsPoint
วิธีที่ 3: List Comprehension + join()
จัดการข้อมูลที่ไม่ใช่ string ได้
def listToString(s):
return ''.join([str(elem) for elem in s])
print(listToString(['Tutorials', 'Point'])) # TutorialsPoint
วิธีที่ 4: map() + join()
def listToString(s):
return ''.join(map(str, s))
print(listToString(['Tutorials', 'Point'])) # TutorialsPoint
เปรียบเทียบประสิทธิภาพ
| วิธี | ความเร็ว | รองรับ non-string |
|---|---|---|
| Loop + | ช้าที่สุด | ไม่ได้ (ต้อง str() เอง) |
| join() | เร็วที่สุด | ไม่ได้ (ต้องเป็น string ทั้งหมด) |
| List comp + join | เร็ว | ได้ (str() ภายใน) |
| map + join | เร็ว (Memory efficient) | ได้ (str function) |
แนะนำ: ใช้ ''.join(list) สำหรับลิสต์ string, ใช้ ''.join(map(str, list)) สำหรับลิสต์ mixed types