ต้องแปลงตัวเลขเป็นสตริงด้วย str() ก่อนจึงจะ concat ได้ ตัวอย่าง print(a + str(b)) string1 Python 2 เท่านั้น: ใช้ backtick `b` แต่ถูกลบใน Python 3 แล้ว print(a + `b`) string1
ต้องแปลงตัวเลขเป็นสตริงด้วย str() ก่อนจึงจะ concat ได้ ตัวอย่าง print(a + str(b)) string1 Python 2 เท่านั้น: ใช้ backtick `b` แต่ถูกลบใน Python 3 แล้ว print(a + `b`) string1
ใช้ regex กับ re.sub() แทนที่ escape sequences ด้วยสตริงว่าง Regex pattern r(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~] ตัวอย่างโค้ด import re def escape_ansi(line): ansi_escape = re.compile(r(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]) return ansi_escape.sub(, line) print(escape_ansi(\t\u001b[0;35mSomeText\u001b
ใช้เมธอด split() ของ string class ค่า default delimiter คือ whitespace ตัวอย่าง Please split this string.split() [Please, split, this, string] หรือใช้ regex re.split(r\s+, string) แต่ช้ากว่า re.split(r\s+, Please split this string) [Please, split, this, string]
Encode: แปลง Unicode string → bytes (สำหรับ I/O เช่น บันทึกไฟล์ ส่งผ่านเครือข่าย) Decode: แปลง bytes → Unicode string (เมื่อรับข้อมูลจากไฟล์หรือเครือข่าย) ตัวอย่าง Encode uæøå.encode(utf8) b\xc3\xa6\xc3\xb8\xc3\xa5 ตัวอย่าง Decode b\xc3\xa6\xc3\xb8\xc3\xa5.decode(utf8) æøå สตริง UTF-8 นี้เทียบเท่า
ใช้โมดูล itertools ซึ่งมีเมธอด permutations(iterable[, r]) คืนค่าเป็น tuples ต้อง join เพื่อได้สตริง ตัวอย่าง: ใช้ itertools.permutations [.join(p) for p in permutations(dune)] [dune, duen, dnue, dneu, deun, denu, udne, uden, unde, uned, uedn, uend, ndue, ndeu, nude, nued, nedu, neud, edun, ednu, e
แปลงสตริงเป็นไบนารีโดยวนลูปแต่ละตัวอักษร แล้วรวมกัน วิธีที่ 1: ใช้ format(ord(x), b) .join(format(ord(x), b) for x in st) 1101000 1100101 1101100 1101100 1101111 100000 1110111 1101111 1110010 1101100 1100100 วิธีที่ 2: ใช้ bytearray และ map(bin, ...) list(map(bin, bytearray(st))) [0b1101000, 0b1
ใช้ string formatting เพื่อจัดรูปแบบเลขทศนิยมให้มีความกว้างคงที่และทศนิยม 2 ตำแหน่ง วิธีที่ 1: ใช้ format() print({:12.2f}.format(x)) 12.36 วิธีที่ 2: ใช้ % formatting print(%12.2f % x) 12.36 รูปแบบ 12.2f หมายถึง ความกว้างรวม 12 ตัวอักษร ทศนิยม 2 ตำแหน่ง ชิดขวา
หากต้องการลบตัวอักษรที่ตำแหน่งเฉพาะ (index) ให้ใช้ string slicing สร้างสตริงใหม่โดยไม่รวมตัวอักษรตัวนั้น ตัวอย่าง: ลบตัวอักษรที่ index 4 s[:4] + s[5:] Hell World แต่ถ้าต้องการลบทุกครั้งที่ตัวอักษรปรากฏ หรือลบหลายตัวอักษรพร้อมกัน ใช้วิธีต่อไปนี้: 1. ใช้เมธอด replace() Hello people.replace(e, ) Hllo
วิธีที่ง่ายที่สุดคือการวนลูปตรวจสอบตัวอักษรแต่ละตัวในสตริง ว่าอยู่ในช่วง ASCII หรือไม่ ตัวอย่างโค้ด def is_ascii(s): return all(ord(c) < 128 for c in s) print(is_ascii(ÄmsterdÄm)) ผลลัพธ์ False แต่วิธีนี้มีประสิทธิภาพต่ำ วิธีที่ดีกว่าคือการใช้ str.decode(ascii) และจับข้อยกเว้น (exception) ตัวอย
มีหลายวิธีทำได้ สามารถกรองตัวอักษรที่ไม่ใช่ตัวเลขด้วย for ... if ตัวอย่าง:>>> s = H3ll0 P30P13 >>> .join(i for i in s if i.isdigit()) 303013ยังสามารถใช้ filter และ lambda function กรองตัวอักษรได้ ตัวอย่าง:>>> s = H3ll0 P30P13 >>> .join(filter(lambda x: x.isdigit()
สามารถใช้ isinstance(var, class) ตรวจสอบว่า var เป็น instance ของคลาสที่กำหนด ใน Python 2.x คลาสพื้นฐานของ str และ unicode คือ basestring ใช้ได้ดังนี้:>>> s = A string >>> isinstance(s, basestring) True >>> isinstance(s, str) True >>> isinstance(10, basestring) Fa
สามารถใช้กลุ่มจับคapture groups ใน regular expressions เพื่อดึงสตริงย่อยจากภายในสตริง ต้องทราบรูปแบบและบริบทรอบๆ ของสตริงย่อยที่ต้องการดึง ตัวเช่น หากมีบรรทัดและต้องการดึงข้อมูลเงินในรูปแบบ $xxx,xxx.xx สามารถใช้:import re text = The phone is priced at $15,745.95 and has a camera. m = re.search(r(\$[
วิธีที่ดีที่สุดในการต่อสตริงเข้ากับตัวแปรสตริงคือใช้ + หรือ += เนื่องจากอ่านง่ายและรวดเร็ว ทั้งสองเท่ากันในความเร็ว นอกจากนี้ หากทำงานกับสตริง 2 ตัว append() ก็ใช้ได้อีกด้วยหากต่อสตริงจากลิสต์ของสตริง วิธีที่แนะนำคือใช้ join() เนื่องจากยอมรับลิสต์ของสตริงและต่อพวกเขาเข้าด้วยกัน และอ่านง่ายที่สุดในกร
เพื่อลบอักขระพิเศษ เครื่องหมายวรรคตอน และช่องว่างจากสตริง ให้วนลูปสตริงและกรองเฉพาะตัวอักษร alphanumeric ตัวอย่าง:>>> string = Hello $#! People Whitespace 7331 >>> .join(e for e in string if e.isalnum()) HelloPeopleWhitespace7331Regular expressions ก็สามารถใช้ลบตัวอักษรที่ไม่ใช่
สามารถใช้ defaultdict นับแต่ละสตริงย่อยที่เริ่มต้นที่แต่ละตำแหน่งในสตริงอินพุต เมธอด getsubs เป็น generator ที่คืนสตริงย่อยที่สั้นลงทุกครั้งที่เรียกตัวอย่าง= 2] if filtered: maxkey = max(filtered, key=len) # หาสตริงยาวที่สุด return maxkey else: raise ValueError(no re
เพื่อแปลงสตริงเป็น float ให้ใช้วิธีดังนี้:try: print(float(112.15)) except ValueError: print(Cannot parse)ผลลัพธ์:112.15หากสตริงแปลงไม่ได้ จะโยน ValueErrorสามารถสร้างฟังก์ชันห่อหุ้มที่คืนค่าบูลีนสำหรับสตริงที่ให้มา ตัวอย่าง:def isfloat(value): try: float(value) return Tru
การใช้งานแบบทั่วไปของอัลกอริทึม Longest Common Substring แบบ dynamic programming ใช้เวลา O(nm) โค้ดต่อไปนี้เป็นการใช้งานของอัลกอริทึม longest common substring:ตัวอย่าง longest: longest = m[x][y] x_longest = x else: m[x][y] = 0 r
หากต้องการตรวจสอบว่าตัวอักษรที่กำหนดมีอยู่ในสตริงหรือไม่ ให้ใช้ in ตัวอย่าง:>>> s = Hello world >>> e in s Trueหากมีลิสต์ตัวอักษรที่ต้องการค้นหา ให้ใช้ Set ใส่ตัวอักษรเหล่านั้นในเซต และใช้ฟังก์ชัน any ตรวจสอบว่ามีตัวอักษรเหล่านี้อยู่ในสตริงหรือไม่ ตัวอย่าง:chars = set(0123456789$,)
คุณต้องทราบรูปแบบวันที่ที่อาจอยู่ในสตริงเพื่อดึงออกมา สามารถใช้ regular expression ดึงวันที่ และ datetime.datetime.strptime แปลงวันที่ ตัวเช่น หากมีวันที่ในสตริงในรูปแบบ YYYY-MM-DD สามารถใช้โค้ดต่อไปนี้ดึงและแปลงวันที่:ตัวอย่างimport re, datetime s = I have a meeting on 2018-12-10 in New York match
สามารถใช้ regular expressions ดึงค่าจำนวนเต็มทั้งหมดตามลำดับการปรากฏในอาร์เรย์ ใช้โค้ดต่อไปนี้เพื่อดึงค่าเหล่านั้น:ตัวอย่างimport re s = 12 hello 52 19 some random 15 number # ดึงตัวเลขและแปลงเป็น int list_of_nums = list(map(int, re.findall(r\d+, s))) print(list_of_nums)ผลลัพธ์[12, 52, 19, 15]หากต้อ