คือนึกมุขเท่ ๆ ไม่ค่อยออก ไม่ค่อยอยากเขียน tutorial เท่าไร
มันดูซ้ำกับชาวบ้าน และก็ใน web หลัก ๆ ของ Python ก็แทบจะบอกซะหมดแล้ว
เขียนไปก็เปลืองพื้นที่ชาวบ้านเปล่า ๆ ให้เค้าเอาไว้เตะตะกล้อดีกว่า งึม ๆ
แล้ววันนี้จะนำเสนออะไรดีอะเนี่ย เอาเป็นแนวคิดในการเขียน เล่น ๆ ดีกว่า
ว่าแล้วก็มาใช้สมองอันน้อยนิดกัน
เริ่มจาก มี Logic ที่ว่า ต้องการเอาข้อมูล list มาเรียงเป็น String โดยมี comma ',' กั้น
อื่อ ถ้าเป็นคนทั่วไป ฉลาด ๆ คิดเยอะ ๆ ก็จะประมาณว่า
ให้วน list แล้วนำไปใส่ string ทีละตัว แล้วตามด้วย comma ', '
ตัวสุดท้ายไม่ต้องใส่ comma ', '
list = ['a', 'b', 'c', 'd']
r = ''
i = 1
for l in list:
if i == len(list):
r = '%s%s' %(r, l)
else:
r = '%s%s, ' %(r, l)
i = i+1
note
สร้าง i เพื่อเก็บตำแหน่ง ปัจจุบัน จะได้รู้ว่าตัวสุดท้ายหรือยัง
สิ่งที่ได้
'a, b, c, d'
ยอ code หน่อยแล้วกัน
list = ['a', 'b', 'c', 'd']
r = ''
i = 1
for l in list:
r = i == len(list) and '%s%s' %(r, l) or '%s%s, ' %(r, l)
i = i+1
เสร็จแล้ว thinking smart ...
--------------------
กะคิดอีกแบบ วนแล้วใส่ comma ', ' ไปก่อน เดี๋ยวเกิดอะไรขึ้น แก้ทีหลัง (แอบหัวเราะ เหอ ๆ ๆ)
ก็จะเขียนขึ้นมาก่อนว่า
list = ['a', 'b', 'c', 'd']
r = ''
for l in list:
r = '%s%s, ' %(r, l)
สิ่งที่ได้
'a, b, c, d, '
อะเกิน!!! แต่มิใช่ปัญหา ดูแล้ว comma space ', ' ตัวหลังเกินมา
แต่ไม่จำเป็นต้องรู้กระมังว่าตัวหลังคืออะไร รู้แค่กี่ตำแหน่งพอ 2 สินะ
ก็เอาสองตัวหลังออก logic นรก 555+
เพิ่ม code เป็น
list = ['a', 'b', 'c', 'd']
r = ''
for l in list:
r = '%s%s, ' %(r, l)
if 2 > len(r):
r = r[0: -2]
สิ่งที่ได้
'a, b, c, d'
ย่อ code หน่อยเพื่อ show power
list = ['a', 'b', 'c', 'd'] r = ''.join(['%s%s, '%(r, l) for l in list]) r = 2 <= len(r) and r[0: -2] or r
อื่อ จบ ๆ ๆ เดี๋ยวจ้างน้อง ๆ มาทำดีกว่า
ไม่มีความคิดเห็น:
แสดงความคิดเห็น