Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python รวมตัวอักษรในลิสต์เป็นสตริง

แนวคิด

การรวมสมาชิกในลิสต์ (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))