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

การสร้างดิกชันนารีแบบย่อ

สร้างดิกชันนารีอย่างกระชับด้วยไวยากรณ์แบบ comprehension

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

บทนำ

การสร้างดิกชันนารีแบบย่อเป็นวิธีกระชับในการสร้างดิกชันนารีจากสิ่งที่วนซ้ำได้ทุกชนิด

การสร้างดิกชันนารีแบบย่อพื้นฐาน

{k: v for k, v in items} คือรูปแบบพื้นฐาน ตัวอย่างเช่น {x: x**2 for x in range(5)} จับคู่ตัวเลขกับค่ากำลังสองของตัวเลขเหล่านั้น
squares = {x: x**2 for x in range(5)}
print(squares)

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

เติม if ไว้ท้ายเพื่อกรองข้อมูล: {x: x**2 for x in range(10) if x % 2 == 0} จะเก็บเฉพาะตัวเลขคู่
evens = {x: x**2 for x in range(10) if x % 2 == 0}
print(evens)

การกลับคีย์กับค่าในดิกชันนารี

{v: k for k, v in d.items()} สลับคีย์กับค่า วิธีนี้ใช้ได้ก็ต่อเมื่อค่าทั้งหมดไม่ซ้ำกันและแฮชได้
d = {'a': 1, 'b': 2, 'c': 3}
inverted = {v: k for k, v in d.items()}
print(inverted)

จากลิสต์สองรายการ

{k: v for k, v in zip(keys, values)} เป็นวิธีที่อ่านง่ายที่สุดในการสร้างดิกชันนารีจากลิสต์ที่มีตำแหน่งสอดคล้องกัน
keys = ['name', 'age']
vals = ['Alice', 30]
d = {k: v for k, v in zip(keys, vals)}
print(d)

การแปลงค่า

ใช้ฟังก์ชันกับค่าทั้งหมด: {k: v.upper() for k, v in d.items()} จะแปลงค่าที่เป็นข้อความทั้งหมดให้เป็นตัวพิมพ์ใหญ่
d = {'a': 'hello', 'b': 'world'}
result = {k: v.upper() for k, v in d.items()}
print(result)

การสร้างดิกชันนารีแบบย่อซ้อนกัน

{outer_k: {inner_k: inner_v} ...} เป็นการซ้อนการสร้างแบบย่อ ควรคำนึงถึงความอ่านง่าย หากซับซ้อนเกินไป ให้ใช้ลูปทั่วไป
nested = {i: {j: i*j for j in range(3)} for i in range(3)}
print(nested)

การจัดกลุ่มด้วยการสร้างแบบย่อ

จัดกลุ่มรายการตามคุณสมบัติ: {k: [v for v in values if condition(v, k)] for k in keys}
words = ['apple', 'art', 'banana', 'blueberry']
grouped = {ch: [w for w in words if w.startswith(ch)] for ch in 'ab'}
print(grouped)

การรวมและการเขียนทับ

{**d1, **d2} รวมดิกชันนารีสองตัวในรูปแบบคล้ายการสร้างแบบย่อ ค่าจาก d2 จะมีผลเมื่อคีย์ซ้ำกัน
d1 = {'a': 1, 'b': 2}
d2 = {'b': 99, 'c': 3}
merged = {**d1, **d2}
print(merged)

ดิกชันนารีกับ defaultdict

การสร้างแบบย่อจะสร้างดิกชันนารีทั่วไป ให้ใช้ defaultdict เมื่อต้องการสร้างค่าเริ่มต้นอัตโนมัติสำหรับคีย์ที่หายไป
from collections import defaultdict
d = defaultdict(list)
for w in ['apple', 'art', 'banana']:
    d[w[0]].append(w)
print(dict(d))

ประสิทธิภาพ

โดยทั่วไปการสร้างดิกชันนารีแบบย่อจะเร็วกว่าการสร้างด้วยลูป for ที่เทียบเท่ากัน เพราะตัวแปลภาษาได้ปรับประสิทธิภาพการทำงานภายในไว้
# Comprehension
squares = {x: x**2 for x in range(1000)}
print(len(squares))

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

{v: k for k, v in d.items()} ทำอะไร

สรุปทบทวน

การสร้างดิกชันนารีแบบย่อ: {k: v for ... if ...} ใช้สำหรับสลับคีย์กับค่า แปลงค่า จัดกลุ่ม และกรองข้อมูล ใช้ร่วมกับ zip() สำหรับลิสต์ที่มีตำแหน่งสอดคล้องกัน

เรียนต่อ

ทำได้ดีมากครับ! ไปยังบทเรียนถัดไปเพื่อพัฒนาทักษะของคุณต่อ

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

บทเรียน “การสร้างดิกชันนารีแบบย่อ” ฟรีหรือไม่

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

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

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

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

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

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

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

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

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

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

  1. พื้นฐานดิกชันนารี
  2. เมธอดของดิกชันนารี
  3. เซตและการดำเนินการกับเซต
  4. การสร้างดิกชันนารีแบบย่อ
← กลับไปที่ Python Academy