หน้าแรก
หน้าแรก
หากต้องการเชื่อมสตริงกับตัวเลข คุณต้องแปลงตัวเลขเป็นสตริงโดยใช้ str(number) ตัวอย่างเช่น >>> a = "string" >>> b = 1 >>> print a + str(b) string1 ใน Python 2 คุณยังสามารถใช้ backtick(``) เพื่อล้อมรอบตัวเลขและรับผลลัพธ์เดียวกันกับตัวเลขและสตริง โปรดทราบว่า backtic
คุณสามารถใช้ regexes เพื่อลบลำดับหลีก ANSI ออกจากสตริงใน Python เพียงแทนที่ Escape Sequence ด้วยสตริงว่างโดยใช้ re.sub() regex ที่คุณสามารถใช้เพื่อลบลำดับหลีก ANSI คือ:(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]. ตัวอย่างเช่น import re def escape_ansi(line): ansi_escape =re.compile(r'(\x9B|\x
คุณสามารถใช้split() จากคลาสสตริง ตัวคั่นเริ่มต้นสำหรับวิธีนี้คือช่องว่าง เช่น เมื่อเรียกใช้สตริง มันจะแยกสตริงนั้นที่อักขระช่องว่าง ตัวอย่างเช่น: >>>"Please split this string".split() ['Please','split', 'this', 'string'] สามารถใช้ Regex เพื่อ
เพื่อแสดงสตริง Unicode เป็นสตริงของไบต์เรียกว่าการเข้ารหัส ในการแปลงสตริงของไบต์เป็นสตริง Unicode เรียกว่าการถอดรหัส โดยทั่วไป คุณจะเข้ารหัสสตริง Unicode เมื่อใดก็ตามที่คุณต้องการใช้สำหรับ IO เช่น ถ่ายโอนผ่านเครือข่าย หรือบันทึกลงในไฟล์ดิสก์ โดยทั่วไป คุณจะถอดรหัสสตริงไบต์ทุกครั้งที่ได้รับข้อมูลสตริ
หากต้องการค้นหาการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมดของสตริงที่กำหนด คุณสามารถใช้โมดูล itertools ซึ่งมีวิธีการที่มีประโยชน์ที่เรียกว่าพีชคณิต (iterable[, r]) เมธอดนี้ส่งคืนการเปลี่ยนลำดับความยาว r ต่อเนื่องขององค์ประกอบใน iterable เป็น tuples เพื่อให้ได้การเรียงสับเปลี่ยนทั้งหมดเป็นสตริง คุณจะต้องว
ในการแปลงสตริงเป็นไบนารี คุณต้องวนซ้ำอักขระแต่ละตัวและแปลงเป็นไบนารี จากนั้นนำอักขระเหล่านี้มารวมกันเป็นสตริงเดียว คุณสามารถใช้ format(ord(x), b) เพื่อจัดรูปแบบอักขระ x เป็นไบนารี ตัวอย่างเช่น: .join(format(ord(x), b) for x in st)11010001100101 1101100 1101100 1101111 100000 1110111 1101111 1110010
คุณสามารถใช้การจัดรูปแบบสตริงเพื่อจัดรูปแบบตัวเลขทศนิยมให้เป็นความกว้างคงที่ใน Python ได้ ตัวอย่างเช่น หากคุณต้องการให้จุดทศนิยมจัดแนวด้วยความกว้าง 12 อักขระและ 2 หลักทางด้านขวาของจุดทศนิยม คุณสามารถใช้สิ่งต่อไปนี้: >>>x = 12.35874 >>>print "{:12.2f}".format(x) &nbs
หากคุณต้องการลบอักขระที่ดัชนีบางตัวออกจากสตริง คุณสามารถใช้การแบ่งสตริงเพื่อสร้างสตริงโดยไม่มีอักขระนั้นได้ ตัวอย่างเช่น >>> s = "Hello World" >>> s[:4] + s[5:] "Hell World" แต่ถ้าคุณต้องการลบอักขระที่ปรากฏทั้งหมดหรือรายการอักขระ คุณสามารถใช้วิธีการต่อไปนี้: ค
วิธีที่ง่ายที่สุดคือวนรอบอักขระในสตริงและตรวจสอบว่าอักขระแต่ละตัวเป็น ASCII หรือไม่ ตัวอย่าง def is_ascii(s): return all(ord(c) < 128 for c in s) print is_ascii('ӓmsterdӒm') ผลลัพธ์ สิ่งนี้จะให้ผลลัพธ์: False แต่วิธีนี้ไม่มีประสิทธิภาพมาก วิธีที่ดีกว่าคือการถอดรหัสสตริงโดยใ
เรามีหลายวิธีในการบรรลุเป้าหมายนี้ เราสามารถกรองอักขระที่ไม่ใช่ตัวเลขโดยใช้คำสั่ง ... if ตัวอย่างเช่น: >>> s = "H3ll0 P30P13" >>> ''.join(i for i in s if i.isdigit()) '303013' เรายังสามารถใช้ตัวกรองและฟังก์ชันแลมบ์ดาเพื่อกรองอักขระออก ตัวอย่างเช่น: >&g
เราสามารถใช้ isinstance(var, class) เพื่อตรวจสอบว่า var เป็นอินสแตนซ์ของคลาสที่กำหนดหรือไม่ ใน Python 2.x คลาสพื้นฐานของ str และ unicode เป็นเบสสตริง เราจึงสามารถใช้งานได้ดังนี้: >>> s = 'A string' >>> isinstance(s, basestring) True >>> isinstance(s, str) True >
คุณสามารถใช้การจับกลุ่มในนิพจน์ทั่วไปเพื่อแยกสตริงย่อยออกจากภายในสตริง คุณจำเป็นต้องทราบรูปแบบและบริเวณโดยรอบของสตริงย่อยที่คุณต้องการแยก ตัวอย่างเช่น หากคุณมีบรรทัดและต้องการดึงข้อมูลเงินออกมาในรูปแบบ $xxx,xxx.xx คุณสามารถใช้สิ่งต่อไปนี้: import re text = 'The phone is priced at $15,745.95 and
วิธีที่ดีที่สุดในการผนวกสตริงเข้ากับตัวแปรสตริงคือการใช้ + หรือ +=เนื่องจากสามารถอ่านได้และรวดเร็ว พวกเขายังเร็วอีกด้วย นอกเหนือจากนี้ หากคุณใช้ 2 สตริง สามารถใช้ append() ได้ หากคุณกำลังเชื่อมรายการสตริง วิธีที่ต้องการคือการใช้ join() เนื่องจากยอมรับสตริง lis tof และเชื่อมเข้าด้วยกัน และสามารถอ่าน
หากต้องการลบอักขระพิเศษ เครื่องหมายวรรคตอน และช่องว่างออกจากสตริง ให้วนซ้ำบนสตริงและกรองอักขระที่ไม่ใช่ตัวอักษรและตัวเลขทั้งหมดออก ตัวอย่างเช่น: >>> string = "Hello $#! People Whitespace 7331" >>> ''.join(e for e in string if e.isalnum()) 'HelloPeopleWh
คุณสามารถใช้ defaultdict เพื่อนับแต่ละสตริงย่อยที่ขึ้นต้นด้วยแต่ละตำแหน่งในสตริงอินพุต เมธอด getsubs เป็นเมธอดตัวสร้างที่ให้สตริงย่อยที่เล็กลงทุกครั้งที่มีการเรียก ตัวอย่าง from collections import defaultdict def getsubs(loc, s): substr = s[loc:] i = -1 whil
ในการแยกวิเคราะห์สตริงที่จะลอย คุณสามารถใช้สิ่งต่อไปนี้: try: print float('112.15') except ValueError: print 'Cannot parse' สิ่งนี้จะให้ผลลัพธ์แก่คุณ: 112.15 หากสตริงของคุณไม่สามารถแยกวิเคราะห์ได้ จะเกิดข้อผิดพลาดด้านค่า คุณสามารถสร้างเมธอด wrapper ที่ส
การใช้งานโปรแกรมไดนามิกทั่วไปสำหรับอัลกอริธึมสตริงย่อยที่ยาวที่สุดที่ทำงานในเวลา O(nm) ต่อไปนี้คือการใช้อัลกอริทึมสตริงย่อยทั่วไปที่ยาวที่สุด: ตัวอย่าง def longest_common_substring(s1, s2): m = [[0] * (1 + len(s2)) for i in xrange(1 + len(s1))] longest, x_longest = 0, 0 &nb
หากคุณต้องการตรวจสอบว่ามีอักขระที่ระบุอยู่ในสตริงหรือไม่ คุณสามารถใช้ in. ตัวอย่างเช่น >>> s = "Hello world" >>> 'e' in s True หากคุณมีรายการอักขระที่ต้องการค้นหา คุณสามารถใช้ชุด เพิ่มอักขระเหล่านี้ในชุดและใช้ฟังก์ชันใดๆ เพื่อตรวจสอบว่ามีอักขระเหล่านี้อยู่ในสตริง
คุณจำเป็นต้องทราบรูปแบบของวันที่ที่สามารถอยู่ในสตริงเพื่อแยกออก คุณสามารถใช้นิพจน์ทั่วไปเพื่อแยกวันที่และ datetime.datetime.strptime เพื่อแยกวิเคราะห์วันที่ ตัวอย่างเช่น หากคุณมีวันที่ในสตริงในรูปแบบ YYYY-MM-DD คุณสามารถใช้โค้ดต่อไปนี้เพื่อแยกและแยกวิเคราะห์วันที่นี้ ตัวอย่าง import re, datetime s =
คุณสามารถใช้นิพจน์ทั่วไปเพื่อรับค่าจำนวนเต็มทั้งหมดตามลำดับที่เกิดขึ้นในอาร์เรย์ คุณสามารถใช้รหัสต่อไปนี้เพื่อรับค่าเหล่านั้น - ตัวอย่าง import re s = "12 hello 52 19 some random 15 number" # Extract numbers and cast them to int list_of_nums = map(int, re.findall('\d+', s)) print l