แนวคิด
การรวมสมาชิกในลิสต์ (list of characters) ให้กลายเป็นสตริงเดียว สามารถทำได้ด้วยลูป for และตัวดำเนินการ + หรือวิธีที่มีประสิทธิภาพกว่าคือ ''.join(list)
ตัวอย่างโค้ด (วิธีลูป)
def convert_spec_Vals(my_list):
new_val = ""
for element in my_list:
new_val += element
return new_val
my_list = ['p', 'y', 't', 'h', 'o', 'n', '&', 'c', 'o', 'o', 'l']
print("ลิสต์:", my_list)
print("ผลลัพธ์:", convert_spec_Vals(my_list))
ผลลัพธ์
ลิสต์: ['p', 'y', 't', 'h', 'o', 'n', '&', 'c', 'o', 'o', 'l']
ผลลัพธ์: python&cool
วิธีที่แนะนำ (Pythonic)
# ใช้ str.join() - เร็วกว่าและอ่านง่ายกว่า
my_list = ['p', 'y', 't', 'h', 'o', 'n', '&', 'c', 'o', 'o', 'l']
result = ''.join(my_list)
print(result) # python&cool
คำอธิบาย
join()เป็นเมธอดของสตริง ที่รับ iterable ของสตริงมาเชื่อมต่อ- สตริงว่าง
''หมายถึงไม่มีตัวคั่นระหว่างตัวอักษร - หากต้องการตัวคั่น ใช้
'-'.join(list)จะได้p-y-t-h-o-n-&-c-o-o-l - ประสิทธิภาพ:
join()เร็วกว่าการ+=ในลูปมาก (O(n) vs O(n²))
กรณีสมาชิกไม่ใช่สตริง
# ถ้าลิสต์มีตัวเลข ต้องแปลงก่อน
nums = [1, 2, 3, 4]
result = ''.join(str(x) for x in nums) # '1234'
# หรือ
result = ''.join(map(str, nums))