0Pricing
Python Academy · บทเรียน

การสร้างลิสต์แบบย่อ

สร้างลิสต์อย่างกระชับด้วยไวยากรณ์ comprehension และเงื่อนไข

การสร้างลิสต์แบบย่อ เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

บทนำ

คอมเพรเฮนชันของรายการสร้างรายการใหม่จากสิ่งที่วนซ้ำได้ด้วยนิพจน์เดียวที่อ่านง่าย แทนรูปแบบการวนซ้ำด้วย for ที่ใช้กันทั่วไป

ไวยากรณ์พื้นฐาน

`[expression for item in iterable]` คือรูปแบบหลัก ส่วน `[x*2 for x in range(5)]` ให้ผลลัพธ์เป็น `[0,2,4,6,8]`
doubled = [x*2 for x in range(5)]
print(doubled)

พร้อมเงื่อนไข

`[x for x in range(10) if x%2==0]` กรองให้เหลือจำนวนคู่ โดยส่วน if จะอยู่หลังส่วน for
evens = [x for x in range(10) if x % 2 == 0]
print(evens)

การแปลงสตริง

`[word.upper() for word in words]` ใช้ `upper()` กับสตริงทุกค่า และใช้ได้กับสิ่งที่วนซ้ำได้ทุกชนิด
words = ['hello', 'world']
print([w.upper() for w in words])

คอมเพรเฮนชันซ้อน

`[x for row in matrix for x in row]` คือคอมเพรเฮนชันซ้อนแบบแบน ซึ่งอ่านจากซ้ายไปขวา โดยลูปภายนอกมาก่อน
matrix = [[1,2,3],[4,5,6]]
flat = [x for row in matrix for x in row]
print(flat)

if/else ในนิพจน์

`[x if x>0 else 0 for x in lst]` ใช้นิพจน์สามส่วนในส่วนนิพจน์ (ก่อน for) ไม่ใช่หลัง for
lst = [-1, 2, -3, 4]
clipped = [x if x > 0 else 0 for x in lst]
print(clipped)

คอมเพรเฮนชันเทียบกับ map/filter

`[f(x) for x in it if cond(x)]` ให้ผลเทียบเท่ากับ `list(map(f, filter(cond, it)))` แต่สามารถอ่านได้ง่ายกว่า
nums = range(10)
result = [x**2 for x in nums if x%2==0]
print(result)

การทำให้แบนด้วยคอมเพรเฮนชัน

สำหรับการซ้อนตั้งแต่ 2 ระดับขึ้นไป คอมเพรเฮนชันสามารถทำให้ข้อมูลแบนได้: `[[1,2],[3,4]] → [1,2,3,4]`
nested = [[1,2],[3,4],[5]]
flat = [x for sub in nested for x in sub]
print(flat)

คอมเพรเฮนชันพร้อม enumerate()

`[(i, x) for i, x in enumerate(lst)]` ให้รายการคู่ดัชนีและค่า
colors = ['red', 'green', 'blue']
indexed = [(i, c) for i, c in enumerate(colors)]
print(indexed)

คอมเพรเฮนชันพร้อม zip()

`[a+b for a, b in zip(lst1, lst2)]` บวกสมาชิกที่อยู่ตำแหน่งเดียวกันของสองรายการ
a = [1, 2, 3]
b = [10, 20, 30]
print([x+y for x,y in zip(a,b)])

เมื่อไม่ควรใช้คอมเพรเฮนชัน

หากตรรกะซับซ้อนหรือต้องมีผลข้างเคียง ให้ใช้ลูป for ปกติ คอมเพรเฮนชันควรคงไว้เป็นโค้ดบรรทัดเดียว
# Too complex for comprehension:
result = []
for x in range(10):
    if x > 5:
        result.append(x * x)
print(result)

ตรวจสอบความเข้าใจ

ในคอมเพรเฮนชันของรายการที่มีทั้งเงื่อนไขและนิพจน์สามส่วน นิพจน์สามส่วนควรอยู่ที่ใด

สรุปทบทวน

คอมเพรเฮนชันของรายการ: `[expr for x in it if cond]` นิพจน์สามส่วนอยู่ในส่วนนิพจน์: `[x if cond else y for x in it]` ใช้สำหรับการแปลงข้อมูลแบบแบนที่อ่านง่าย

เรียนต่อ

ยอดเยี่ยมมาก! โปรดเรียนต่อในบทถัดไปเพื่อพัฒนาทักษะของคุณให้ลึกซึ้งยิ่งขึ้น

คำถามที่พบบ่อย

บทเรียน “การสร้างลิสต์แบบย่อ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างลิสต์แบบย่อ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างลิสต์แบบย่อ”

สร้างลิสต์อย่างกระชับด้วยไวยากรณ์ comprehension และเงื่อนไข คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างลิสต์แบบย่อ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้างลิสต์แบบย่อ
  2. การสร้างเซตและดิกชันนารีแบบย่อ
  3. นิพจน์ตัวสร้าง
  4. คีย์เวิร์ด yield
← กลับไปที่ Python Academy