สตริง

วันที่ รายงานปัญหา ดูแหล่งที่มา ตอนกลางคืน · 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
ตำแหน่งที่ไม่บังคับ ก่อนที่จะจำกัดการค้นหา

เอล์ม

sequence string.elems()

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

ลงท้ายด้วย

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub string; หรือ tuple สตริง จำเป็น
คำต่อท้าย (หรือ Tuple ของคำต่อท้ายอื่นๆ) ที่จะจับคู่
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)

ทำการประมาณค่าในช่วงสตริง สตริงในการจัดรูปแบบมีช่องแทนที่ล้อมรอบด้วยวงเล็บปีกกา {} สิ่งที่ไม่ได้อยู่ในวงเล็บปีกกาจะถือว่าเป็นข้อความตามตัวอักษร ซึ่งจะถูกคัดลอกโดยไม่เปลี่ยนแปลงไปยังเอาต์พุต หากคุณจำเป็นต้องใส่วงเล็บปีกกาในข้อความตามตัวอักษร คุณสามารถซ่อนค่าเป็น 2 เท่าได้: {{ และ }}ช่องการแทนที่อาจเป็นชื่อ ตัวเลข หรือเว้นว่างไว้ก็ได้ ระบบจะแปลงค่าเป็นสตริงโดยใช้ฟังก์ชัน 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()

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

เลขประจำตัวประชาชน

bool string.isdigit()

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

ต่ำกว่า

bool string.islower()

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

Isspace

bool string.isspace()

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

ชื่อ

bool string.istitle()

แสดงค่า "จริง" หากสตริงอยู่ในลักษณะตัวพิมพ์ของหัวข้อและมีอักขระอย่างน้อย 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 องค์ประกอบทั้งหมดของแบบฟอร์ม (ก่อน ตัวคั่น หลัง) หากสตริงอินพุตไม่มีตัวคั่น พาร์ติชันจะแสดงผล (ตัวเอง, '', '')

พารามิเตอร์

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

removeprefix

string string.removeprefix(prefix)

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

พารามิเตอร์

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

Removeuffix

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
ตำแหน่งที่ไม่บังคับ ก่อนที่จะจำกัดการค้นหา

พาร์ติชัน

tuple string.rpartition(sep)

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

พารามิเตอร์

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

rsplit

list string.rsplit(sep, maxsplit=None)

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

พารามิเตอร์

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

แถบสี

string string.rstrip(chars=None)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
chars string; หรือ 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
ควรรวมตัวแบ่งบรรทัดไว้ในรายการผลลัพธ์หรือไม่

เริ่มต้นด้วย

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub string; หรือ tuple สตริง จำเป็น
คำนำหน้า (หรือ 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()

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

ส่วนบน

string string.upper()

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