สตริง

7.3 · 7.2 · 7.1 · 7.0 · 6.5

ประเภทภาษาในตัวที่รองรับสตริง ตัวอย่างสตริงลิเทอรัล:

a = 'abc\ndef'
b = "ab'cd"
c = """multiline string"""

# Strings support slicing (negative index starts from the end):
x = "hello"[2:4]  # "ll"
y = "hello"[1:-1]  # "ell"
z = "hello"[:4]  # "hell"# Slice steps can be used, too:
s = "hello"[::2] # "hlo"
t = "hello"[3:0:-1] # "lle"
สตริงไม่สามารถวนซ้ำได้โดยตรง ให้ใช้เมธอด .elems() เพื่อวนซ้ำอักขระของสตริง ตัวอย่าง
"bc" in "abcd"   # evaluates to True
x = [c for c in "abc".elems()]  # x == ["a", "b", "c"]
ไม่อนุญาตให้ใช้การต่อสตริงโดยนัย ให้ใช้โอเปอเรเตอร์ + แทน โอเปอเรเตอร์การเปรียบเทียบจะทำการเปรียบเทียบตามลําดับตัวอักษร ใช้ == เพื่อทดสอบความเท่าเทียม

สมาชิก

ตัวพิมพ์ใหญ่

string string.capitalize()

แสดงผลสําเนาสตริงโดยให้อักขระแรก (หากมี) เป็นตัวพิมพ์ใหญ่ ส่วนที่เหลือเป็นตัวพิมพ์เล็ก วิธีนี้ไม่สนับสนุนอักขระที่ไม่ใช่ ASCII

จำนวน

int string.count(sub, start=0, end=None)

แสดงจํานวนครั้งที่สตริงย่อย sub ปรากฏ (ไม่ซ้อนทับกัน) ในสตริง โดยสามารถเลือกจํากัดให้อยู่ในช่วง [start:end] โดยที่ start จะรวมและ end จะยกเว้น

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub ต้องระบุ
ส่วนย่อยของสตริงที่จะนับ
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดเฉพาะการค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตำแหน่งที่ไม่บังคับซึ่งจะแสดงก่อนเพื่อจำกัดการค้นหา

elems

sequence string.elems()

แสดงผลค่าที่ซ้ำกันได้ซึ่งประกอบด้วยสตริงย่อยที่มีองค์ประกอบ 1 องค์ประกอบต่อเนื่องกันของสตริง เทียบเท่ากับ [s[i] for i in range(len(s))] ยกเว้นว่าค่าที่แสดงผลอาจไม่ใช่รายการ

endswith

bool string.endswith(sub, start=0, end=None)

แสดงผลเป็น "จริง" หากสตริงลงท้ายด้วย sub หากเป็น "เท็จ" หรือจะระบุเป็น "เท็จ" (ไม่บังคับ) โดยจำกัดไว้เฉพาะ [start:end], start จะรวมอยู่ และ end เป็น "เฉพาะตัว"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub สตริง หรือชุดสตริง ต้องระบุ
ส่วนต่อท้าย (หรือชุดของส่วนต่อท้ายทางเลือก) ที่จะจับคู่
start int หรือ None ค่าเริ่มต้นคือ 0
ทดสอบโดยเริ่มต้นที่ตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตําแหน่งที่จะหยุดการเปรียบเทียบ (ไม่บังคับ)

ค้นหา

int string.find(sub, start=0, end=None)

แสดงผลดัชนีแรกที่พบ sub หรือ -1 หากไม่มีดัชนีดังกล่าว โดยสามารถเลือกจำกัดให้แสดงเฉพาะ [start:end], start แบบรวม และ end แบบไม่รวม

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub ต้องระบุ
สตริงย่อยที่จะค้นหา
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดให้ค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตําแหน่งที่ไม่บังคับก่อนการจํากัดการค้นหา

รูปแบบ

string string.format(*args, **kwargs)

ทำการแทรกสตริง สตริงรูปแบบมีช่องการแทนที่โดยล้อมรอบด้วยวงเล็บปีกกา {} ทุกอย่างที่ไม่ได้อยู่ในวงเล็บปีกกาจะถือว่าเป็นข้อความตัวอักษรล้วน ซึ่งระบบจะคัดลอกไปยังเอาต์พุตโดยไม่มีการแก้ไข หากต้องการใส่อักขระวงเล็บปีกกาในข้อความตัวอักษรล้วน ให้กำหนดเป็นอักขระหลีกโดยใส่ {{ และ }} ซ้ำกัน ฟิลด์การแทนที่อาจเป็นชื่อ ตัวเลข หรือว่างก็ได้ ระบบจะแปลงค่าเป็นสตริงโดยใช้ฟังก์ชัน str
# Access in order:
"{} < {}".format(4, 5) == "4 < 5"
# Access by position:
"{1}, {0}".format(2, 1) == "1, 2"
# Access by name:
"x{key}x".format(key = 2) == "x2x"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
args ค่าเริ่มต้นคือ ()
ลิสต์อาร์กิวเมนต์
kwargs ค่าเริ่มต้นคือ {}
พจนานุกรมของอาร์กิวเมนต์

ดัชนี

int string.index(sub, start=0, end=None)

แสดงผลดัชนีแรกที่พบ sub หรือแสดงข้อผิดพลาดหากไม่มีดัชนีดังกล่าว โดยสามารถเลือกจำกัดให้ [start:end]start รวมและ end ยกเว้นได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub ต้องระบุ
สตริงย่อยที่จะค้นหา
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดให้ค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตําแหน่งที่ไม่บังคับก่อนการจํากัดการค้นหา

Isalnum

bool string.isalnum()

แสดงค่า "จริง" หากอักขระทั้งหมดในสตริงเป็นตัวอักษรและตัวเลขคละกัน ([a-zA-Z0-9]) และมีอักขระอย่างน้อย 1 ตัว

Isalpha

bool string.isalpha()

แสดงค่า True หากอักขระทั้งหมดในสตริงเป็นตัวอักษร ([a-zA-Z]) และมีอักขระอย่างน้อย 1 ตัว

isdigit

bool string.isdigit()

แสดงค่า "จริง" หากอักขระทั้งหมดในสตริงเป็นตัวเลข ([0-9]) และมีอักขระอย่างน้อย 1 ตัว

ต่ำกว่า

bool string.islower()

แสดงค่า "จริง" หากอักขระที่มีตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ทั้งหมดในสตริงเป็นตัวพิมพ์เล็กและมีอักขระอย่างน้อย 1 ตัว

Isspace

bool string.isspace()

แสดงค่า "จริง" หากอักขระทั้งหมดเป็นอักขระช่องว่างและสตริงมีอักขระอย่างน้อย 1 ตัว

ชื่อ

bool string.istitle()

แสดงค่า True หากสตริงเป็นตัวพิมพ์ใหญ่ทั้งหมดและมีอักขระอย่างน้อย 1 ตัว ซึ่งหมายความว่าอักขระตัวพิมพ์ใหญ่ทุกตัวต้องตามหลังอักขระที่ไม่มีตัวพิมพ์ (เช่น เว้นวรรค) และอักขระตัวพิมพ์เล็กทุกตัวต้องตามหลังอักขระที่มีตัวพิมพ์ (เช่น ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก)

isupper

bool string.isupper()

แสดงค่า "จริง" หากอักขระที่มีตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ทั้งหมดในสตริงเป็นตัวพิมพ์ใหญ่และมีอักขระอย่างน้อย 1 ตัว

ผนวก

string string.join(elements)

แสดงผลสตริงที่องค์ประกอบสตริงของอาร์กิวเมนต์เชื่อมต่อกันด้วยสตริงนี้เป็นตัวคั่น ตัวอย่าง:
"|".join(["a", "b", "c"]) == "a|b|c"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
elements ต้องระบุ
ออบเจ็กต์ที่จะเข้าร่วม

ต่ำกว่า

string string.lower()

แสดงผลสตริงนี้เวอร์ชันตัวพิมพ์เล็ก

แถบ

string string.lstrip(chars=None)

แสดงผลสำเนาของสตริงซึ่งนำอักขระนำหน้าที่ปรากฏใน chars ออก โปรดทราบว่า chars ไม่ใช่คํานําหน้า: ชุดค่าผสมของค่าทั้งหมดจะถูกนําออก
"abcba".lstrip("ba") == "cba"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
chars string หรือ None ค่าเริ่มต้นคือ None
อักขระที่จะนำออก หรือช่องว่างทั้งหมดหากไม่มี

พาร์ติชัน

tuple string.partition(sep)

แยกสตริงอินพุตที่ตำแหน่งแรกที่พบตัวคั่น sep และแสดงผลพาร์ติชันที่ได้เป็นทูเปิล 3 องค์ประกอบในรูปแบบ (ก่อน ตัวคั่น หลัง) หากสตริงอินพุตไม่มีตัวคั่น พาร์ติชันจะแสดงผลเป็น (self, '', '')

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sep ต้องระบุ
สตริงที่จะแบ่ง

removeprefix

string string.removeprefix(prefix)

หากสตริงขึ้นต้นด้วย prefix ระบบจะแสดงสตริงใหม่โดยนำคำนำหน้าออก ไม่เช่นนั้น ระบบจะแสดงผลสตริง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
prefix ต้องระบุ
คำนำหน้าที่จะนำออก หากมี

removesuffix

string string.removesuffix(suffix)

หากสตริงลงท้ายด้วย suffix จะแสดงผลสตริงใหม่ที่มีการนำส่วนต่อท้ายออก ไม่เช่นนั้น ระบบจะแสดงผลสตริง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
suffix ต้องระบุ
ส่วนต่อท้ายที่จะนำออก หากมี

แทนที่

string string.replace(old, new, count=-1)

แสดงผลสําเนาของสตริงที่มีการแทนที่ old ด้วย new โดยอาจจํากัดจํานวนการแทนที่ไว้ที่ count

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
old ต้องระบุ
สตริงที่จะถูกแทนที่
new ต้องระบุ
สตริงที่จะแทนที่
count ค่าเริ่มต้นคือ -1
จำนวนสูงสุดของการแทนที่ หากละเว้นหรือค่าเป็นลบ จะไม่มีขีดจำกัด

rfind

int string.rfind(sub, start=0, end=None)

แสดงผลอินเด็กซ์สุดท้ายที่พบ sub หรือ -1 หากไม่มีอินเด็กซ์ดังกล่าว โดยสามารถเลือกจำกัดให้แสดงผลเฉพาะ [start:end], start แบบรวม และ end แบบไม่รวม

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub ต้องระบุ
สตริงย่อยที่จะค้นหา
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดเฉพาะการค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตำแหน่งที่ไม่บังคับซึ่งจะแสดงก่อนเพื่อจำกัดการค้นหา

Rindex

int string.rindex(sub, start=0, end=None)

แสดงผลดัชนีล่าสุดที่พบ sub หรือเพิ่มข้อผิดพลาดหากไม่มีดัชนีดังกล่าว จำกัด [start:end], start ที่รวมอยู่ และ end รวม (ไม่บังคับ)

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub ต้องระบุ
สตริงย่อยที่จะค้นหา
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดเฉพาะการค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตำแหน่งที่ไม่บังคับซึ่งจะแสดงก่อนเพื่อจำกัดการค้นหา

rpartition

tuple string.rpartition(sep)

แยกสตริงอินพุตที่ตำแหน่งที่พบตัวคั่น sep ครั้งล่าสุด และแสดงผลพาร์ติชันที่ได้เป็นทูเปิล 3 องค์ประกอบในรูปแบบ (ก่อน ตัวคั่น หลัง) หากสตริงอินพุตไม่มีตัวคั่น rpartition จะแสดงผล ('', '', self)

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sep ต้องระบุ
สตริงที่จะแบ่ง

rsplit

list string.rsplit(sep, maxsplit=None)

แสดงรายการคำทั้งหมดในสตริงโดยใช้ sep เป็นตัวคั่น โดยเลือกจำกัดจำนวนการแยกเป็น maxsplit วิธีนี้มีลักษณะเหมือนSplit() ยกเว้นการแยกไปทางขวา

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sep required
สตริงที่จะแบ่ง
maxsplit int หรือ None ค่าเริ่มต้นคือ None
จำนวนการแยกสูงสุด

rstrip

string string.rstrip(chars=None)

แสดงผลสําเนาของสตริงที่ลบอักขระต่อท้ายที่ปรากฏใน chars ออก โปรดทราบว่า chars ไม่ใช่ส่วนต่อท้าย: ชุดค่าผสมของค่าทั้งหมดจะถูกลบออก:
"abcbaa".rstrip("ab") == "abc"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
chars สตริง หรือ None ค่าเริ่มต้นคือ None
อักขระที่จะนำออก หรือเว้นวรรคทั้งหมดหากไม่มี

สปลิต

list string.split(sep, maxsplit=None)

แสดงผลรายการของคำทั้งหมดในสตริง โดยใช้ sep เป็นตัวคั่น (ไม่บังคับ) โดยจำกัดจำนวนของการแยกไว้ที่ maxsplit

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sep ต้องระบุ
สตริงที่จะแบ่ง
maxsplit int หรือ None ค่าเริ่มต้นคือ None
จำนวนการแยกสูงสุด

เส้นแบ่ง

sequence string.splitlines(keepends=False)

แยกสตริงที่ขอบเขตบรรทัด ('\n', '\r\n', '\r') และแสดงผลลัพธ์เป็นลิสต์ใหม่แบบปรับเปลี่ยนได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
keepends ค่าเริ่มต้นคือ False
ควรรวมการแบ่งบรรทัดไว้ในรายการผลลัพธ์หรือไม่

startswith

bool string.startswith(sub, start=0, end=None)

แสดงผลเป็น "จริง" หากสตริงขึ้นต้นด้วย sub มิเช่นนั้นแสดงผลเป็น "เท็จ" โดยสามารถเลือกจำกัดให้ใช้เฉพาะ [start:end], start แบบรวม และ end แบบไม่รวมได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub string หรือ tuple ของ strings; required
คำนำหน้า (หรือ tuple ของคำนำหน้าทางเลือก) ที่จะจับคู่
start int หรือ None ค่าเริ่มต้นคือ 0
การทดสอบเริ่มต้นที่ตําแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
หยุดการเปรียบเทียบที่ตําแหน่งนี้

แถบ

string string.strip(chars=None)

แสดงผลสําเนาของสตริงที่นําอักขระนำหน้าหรืออักขระต่อท้ายที่ปรากฏใน chars ออก โปรดทราบว่า chars ไม่ใช่ทั้งคำนำหน้าหรือคำต่อท้าย ระบบจะนำชุดค่าผสมทั้งหมดของค่านี้ออก
"aabcbcbaa".strip("ab") == "cbc"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
chars string หรือ None ค่าเริ่มต้นคือ None
อักขระที่จะนำออก หรือช่องว่างทั้งหมดหากไม่มี

title

string string.title()

แปลงสตริงอินพุตเป็น Title Case กล่าวคือ ทุกคำขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่ ส่วนอักษรที่เหลือเป็นตัวพิมพ์เล็ก ในบริบทนี้ คำหมายถึงชุดตัวอักษรตามลำดับโดยเฉพาะ วิธีนี้ไม่รองรับอักขระ Unicode เสริม

ส่วนบน

string string.upper()

แสดงผลสตริงนี้ในเวอร์ชันตัวพิมพ์ใหญ่