Python แยกสตริงด้วยเมธอด split()

Python แยกสตริงด้วยเมธอด split()

Python แยกสตริงด้วยเมธอด split()

เมธอด split() เป็นเมธอดของสตริง ใช้สำหรับแยกสตริงออกเป็นส่วน ๆ และคืนค่ากลับมาเป็น list โดยเราสามารถกำหนดได้ว่าจะให้แยกสตริงด้วยอะไร ถ้าไม่กำหนดจะแยกด้วยช่องว่าง มีรูปแบบการใช้งานดังนี้

string.split(separator, maxsplit)

  • separator คือตัวคั่นสตริงที่จะใช้สำหรับแยกสตริง (ไม่ระบุก็ได้) ถ้าไม่ระบุ สตริงจะถูกแยกด้วยช่องว่าง (whitespace)
  • maxsplit คือตัวเลขบอกจำนวนว่าจะให้แยกกี่ครั้ง (ไม่กำหนดก็ได้) ถ้าไม่กำหนด ค่าเริ่มต้นคือ -1 ซึ่งหมายถึง แยกทุกครั้งที่เจอตัวคั่นที่กำหนด (หรือช่องว่าง ในกรณีที่ไม่ได้กำหนดตัวคั่น) ถ้าระบะ maxsplit ลิสต์ที่ได้กลับมาจะมีจำนวนเอลิเมนต์เท่ากับ maxsplit+1

ตัวอย่างการใช้งานเมธอด split() แบบไม่ระบุ separator และ maxsplit

txt = "I Love Python"

x = txt.split()

print(x) 
# ['I', 'Love', 'Python']

จากโค้ดตัวอย่าง ใช้เมธอด split() โดยไม่ได้ระบุ separator ไพธอนจึงแบ่งสตริงด้วยช่องว่าง (whitespace) โดยอัตโนมัติ

ตัวอย่างการใช้งานเมธอด split() แบบระบุ separator

txt = "Python, Swift, Kotlin, Java, C#"

x = txt.split(", ")

print(x)
# ['Python', 'Swift', 'Kotlin', 'Java', 'C#']

จากโค้ดตัวอย่าง ระบุตัวคั่น separator เป็น “, ” คือเครื่องหมายคอมม่ากับช่องว่าง ไพธอนจึงใช้ตัวคั่นที่เราระบุเป็นตัวแบ่งแยกสตริงออกจากกัน

ตัวอย่างการใช้งานเมธอด split() แบบระบุ maxsplit

txt = "Python, Swift, Kotlin, Java, C#"

x = txt.split(", ", 2)

print(x)
# ['Python', 'Swift', 'Kotlin, Java, C#']

จากโค้ดตัวอย่าง ใช้เมธอด split() โดยระบุ maxsplit คือให้แบ่งสตริงแค่ 2 ครั้ง ทำให้ได้เอลิเมนต์ของ List เท่ากับ maxsplit + 1 นั่นคือ ลิสต์ที่มีเอลิเมนต์ 3 เอลิเมนต์นั่นเอง ดังภาพ