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

ลิสต์ซ้อนกันและการวนซ้ำ

ทำงานกับลิสต์ซ้อนกันและวนซ้ำอย่างมีประสิทธิภาพด้วยลูป for

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

บทนำ

ลิสต์สามารถมีลิสต์อื่นเป็นสมาชิกได้ ทำให้สร้างโครงสร้างหลายมิติ การเข้าใจการวนซ้ำซ้อนกันเป็นพื้นฐานสำคัญสำหรับกริดและเมทริกซ์

โครงสร้างลิสต์ซ้อนกัน

matrix = [[1,2,3],[4,5,6],[7,8,9]] คือกริดขนาด 3x3 ส่วน matrix[1][2] ใช้เข้าถึงแถวที่ 1 คอลัมน์ที่ 2 ซึ่งมีค่าเป็น 6
matrix = [[1,2,3],[4,5,6],[7,8,9]]
print(matrix[1][2])

การวนซ้ำผ่านแถว

for row in matrix: print(row) จะแสดงลิสต์ย่อยแต่ละรายการ โดย row เองก็เป็นลิสต์ที่คุณใช้ดัชนีเข้าถึงได้
matrix = [[1,2],[3,4]]
for row in matrix:
    print(row)

ลูป for ซ้อนกัน

for row in matrix: for val in row: print(val) จะแสดงสมาชิกแต่ละรายการทั้งหมด
matrix = [[1,2],[3,4]]
for row in matrix:
    for val in row:
        print(val, end=' ')

ทำให้ลิสต์ซ้อนกันเป็นลิสต์แบน

[x for row in matrix for x in row] ทำให้ลิสต์แบนลงหนึ่งระดับ นี่คือการสร้างลิสต์แบบย่อซ้อนกัน
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

การสร้างกริด

สร้างกริดขนาด N×M ได้ดังนี้: grid = [[0]*M for _ in range(N)] ให้ใช้การสร้างลิสต์แบบย่อ ไม่ใช่ [[0]*M]*N เพราะรูปแบบหลังจะสร้างแถวที่มีการอ้างอิงร่วมกัน
grid = [[0]*3 for _ in range(3)]
grid[0][0] = 1
print(grid)

กับดักแถวที่มีการอ้างอิงร่วมกัน

grid = [[0]*3]*3 สร้างการอ้างอิงสามรายการไปยังแถวเดียวกัน การแก้ไขรายการหนึ่งจึงแก้ไขทุกรายการ ควรใช้การสร้างแบบย่อเสมอ
bad = [[0]*3]*3
bad[0][0] = 9
print(bad)  # all rows changed!

zip() สำหรับการวนซ้ำแบบขนาน

for a, b in zip(list1, list2) จะวนซ้ำผ่านลิสต์สองรายการไปพร้อมกัน zip() จะหยุดเมื่อถึงลิสต์ที่สั้นกว่า
names = ['Alice', 'Bob']
scores = [90, 85]
for n, s in zip(names, scores):
    print(n, s)

enumerate() กับลิสต์ซ้อนกัน

for i, row in enumerate(matrix): for j, val in enumerate(row): ทำให้คุณได้ทั้งดัชนีและค่า
matrix = [[1,2],[3,4]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        print(f'[{i}][{j}]={val}')

การเรียงลำดับลิสต์ของลิสต์

sorted(data, key=lambda x: x[1]) จะเรียงลำดับตามสมาชิกตัวที่สองของลิสต์ย่อยแต่ละรายการ
data = [['Bob',85],['Alice',90],['Charlie',78]]
data.sort(key=lambda x: x[1])
print(data)

การสลับแถวกับคอลัมน์ของเมทริกซ์

transposed = list(zip(*matrix)) จะสลับแถวให้เป็นคอลัมน์ เครื่องหมาย * จะคลายลิสต์ภายนอกออกเป็นอาร์กิวเมนต์ของ zip
matrix = [[1,2,3],[4,5,6]]
print(list(zip(*matrix)))

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

วิธีที่ถูกต้องในการสร้างกริดขนาด 3x3 ที่เติมด้วยศูนย์ เพื่อหลีกเลี่ยงกับดักแถวที่มีการอ้างอิงร่วมกันคืออะไร

สรุปทบทวน

ลิสต์ซ้อนกัน: เข้าถึงด้วย [row][col] และวนซ้ำด้วยลูป for ซ้อนกัน ใช้การสร้างแบบย่อเพื่อสร้างกริด ใช้ zip() สำหรับการวนซ้ำแบบขนาน และใช้ zip(*matrix) เพื่อสลับแถวกับคอลัมน์

เรียนต่อ

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

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

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

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

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

ทำงานกับลิสต์ซ้อนกันและวนซ้ำอย่างมีประสิทธิภาพด้วยลูป for คุณปฏิบัติ 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