Python: หลักการ slide Strings.
ก่อนอื่นเราต้องเข้าใจก่อนนะครับ ว่า Strings แต่ละ index จะมีชื่อของตำแหน่ง index ของมัน ตามตำแหน่งที่มันอยู่นะครับ เช่น
ถ้าจะ reverse string สามารถเขียนได้แบบนี้เลยนะคับ นับจากตัวหลังสุดคือ -1
a = "HELLO, WORLD!"
a = a[::-1]
print(a)
#================================
!DLROW ,OLLEH
[Finished in 0.1s]or other way without assistant.s = "Hello, World"
def reverse_string(s):
str = ""
for i in s:
str = i + str
return strprint(reverse_string(s))
จากรูปเราจะเห็นว่า Index ถ้านับจากด้านหน้า จะเริ่มจาก “0” แต่ถ้านับจากด้านหลัง จะเริ่มจาก “-1” นะคับ ลองมาดูตัวอย่างกันเลยดีกว่า
>>> msg = 'abcdef' # สร้าง Strings ชือ msg โดยมีข้อมูลข้างในคือ 'abcdef' >>> print(msg[0]) # print string ที่index no.0 นับจากด้านหน้าสุด คือ a
a
>>> print(msg[-1]) # print จาก index no.-1 นับจากด้านหลัง คือ f
f
>>> print(msg[0:3]) # เครื่องหมาย ":" คือ "นับไปถึงก่อนตัวหลัง" ในที่นี้จึงเป็น-
abc -การ print ตั้งแต่ Index 0 ถึง 2 นั่นเอง = a b c
>>> print(msg[:3]) # เราสามารถเขียน codeให้สั้นลงโดยตัด "0" ออกได้นะตัวหน้า
abc # (msg[0:3]) มีค่าเท่ากับ (msg[:3])
>>> print(msg[3:]) # print ตั้งแต่ index 3 ขึ้นไป จึงได้ d e f
def
>>> print(msg[-3:]) # print ตั้งแต่ index -3 ขึ้นไป นั่นคือ -3, -2, -1 จึง-
def -มีค่า d e f เท่ากับอันบนเลยนะคับ แต่ประโยชน์จากการเรียกใช้
แบบนี้คือ สามารถหาค่าล่าสุดได้นั่นเอง เช่น ต้องการค่า 5 ค่า
ล่าสุด ก้อเขียน code เป็น print(msg[-5:]) เป็นต้น
>>> print(msg[1:4]) # print ตั้งแต่ index 1 ถึง "ก่อน index4" นั่นคือ-
bcd - index 1 ถึง 3 นั่นเอง จึงได้ค่า b c d
จากตัวอย่างด้านบนเป็นการเรียกใช้จาก index ของ Strings ซึ่งวิธีเดียวกันเราสามารถนำมาใช้กับ List ได้เช่นกัน ดังตัวอย่างนี้นะครับ
>>> mobile = [] # สร้าง list เปล่าขึ้นมา
>>> mobile.append('Samsung') # append ค่าเข้าไป แต่วิธีการนี้ append ได้ค่าเดียว
>>> mobile
['Samsung'] # ค่าที่ได้จะใช้ใน list แบบนี้
>>> mobile.extend(('Iphone', 'Oppo', 'Nokia',)) #กรณีต้องการเพิ่มหลายๆค่า
>>> mobile
['Samsung', 'Iphone', 'Oppo', 'Nokia']
>>> mobile.extend(['Huawei','Vivo']) #กรณีเพิ่มหลายค่า ใช้(())หรือ ([])ก็ได้
>>> mobile
['Samsung', 'Iphone', 'Oppo', 'Nokia', 'Huawei', 'Vivo']
#=======================================================
>>> print(mobile[3]) #print index ที่3 นั่นค่อ Nokia ใน list
Nokia
>>> print(mobile[0:3]) #print index ตั้งแต่ 0 ถึงก่อน 3 (หรือ 0, 1, 2)
['Samsung', 'Iphone', 'Oppo']
>>> print(mobile[-4:]) #print ค่าตั้งแต่ index -4 ขึ้นไป
['Oppo', 'Nokia', 'Huawei', 'Vivo']
>>> print(mobile[4]) #print ค่าใน index ที่ 4
Huawei
>>> print(mobile[4:]) #print ตั้งแต่ index 4ขึ้นไป
['Huawei', 'Vivo']
มาดูวิธีการจำแบบง่ายๆนะคับ
หรือจะจำง่ายๆนะคับถ้ามีแค่หลักเดียวคือ เอา 2 ตัวหน้า [:2] และไม่เอา 2 ตัวหน้า [2:]a = 'Hello world'
print(a[:2])
He # เอา 2 ตัวหน้านะprint(a[2:])
llow world # ไม่เอา 2 ตัวหน้าprint(a[0: -1: 2])
Hlowr # เริ่มจากตัวหน้า เอาตัวเว้นตัว
แถมอีกนิดคับ เรื่องการ ignore อักขระพิเศษ
และนี่คือวิธีการที่จะ ignore ตัวอักขระพิเศษในชุด string นะคับ คือเติม r ด้านหน้า เช่น>>> print(r"I'll be ignore \n")
I'll be ignore \n. # จะไม่สนใจ \n เพียงเติม r ไว้ด้านหน้า>>> print("I'll be ignore \n")
I'll be ignore # เมื่อไม่เติม r หลังจบประโยคก้อคือ enter
อ่อ…ลืมบอกคับ
List เป็น Mutable นะครับ นั่นคือ เราสามารถแก้ไขค่าภายในได้ตลอด โดยเรียกใช้ตาม index.