Coding for KidsCoding for Kids
ระดับสร้างสรรค์ความท้าทายคู่มือครู
โหวตสำหรับฟีเจอร์
หลักสูตรการพัฒนาด้วย Python ขั้นสูง
บทที่
>
ระดับ

รายการขั้นสูง
การสร้างรายการซ้อน

วัตถุประสงค์

จัดเก็บเครื่องปรุงให้เรียบร้อยในชั้นวางเครื่องเทศโดยใช้รายการซ้อน (Nested Lists)

หนึ่งในชั้นวางเครื่องเทศนั้นว่างเปล่าและจำเป็นต้องเติมเต็มอย่างถูกต้อง ซึ่งมีเครื่องปรุงอยู่ในคลังเก็บ แต่ต้องจัดเรียงและวางอย่างเป็นระเบียบในชั้นวางเครื่องเทศ

เนื่องจากมีรายการของเครื่องปรุงจำนวนมากและความจริงที่ว่ารายการเหล่านี้ถูกจัดเก็บในชั้นต่าง ๆ ในชั้นวางเครื่องเทศ รายการปกติและพจนานุกรมไม่เพียงพอ สำหรับสถานการณ์เช่นนี้ คุณสามารถใช้ รายการซ้อน (Nested Lists) ซึ่งเป็นรายการที่มีรายการหนึ่งหรือมากกว่าภายใน

เพื่อที่จะจัดเก็บเครื่องเทศ คุณต้องเก็บภาชนะก่อนเพื่อจัดเก็บสิ่งของอย่างถูกต้อง เดินไปยังเครื่องหมาย X สีทอง หันไปยังกล่องและใช้ฟังก์ชัน collect() เพื่อเก็บ "empty jar" เพื่อความสะดวกในการจัดเก็บ

หลังจากเก็บภาชนะแล้ว ให้เดินไปยังเครื่องหมาย X สีอ่อนที่อยู่หน้ากล่องไม้ มีค่าคงที่ของรายการอยู่ในระดับนี้ทั้งหมดสี่ (4) อันสำหรับกล่องแต่ละอัน ได้แก่: crate1,  crate2,  crate3, และ crate4. ใช้ฟังก์ชัน speak() ร่วมกับค่าคงที่ของรายการเหล่านี้เพื่อตรวจสอบเนื้อหาของแต่ละกล่อง โดยค่าคงที่ตรงกับกล่องจากขวาไปซ้าย เช่น player.speak(crate1)

เมื่อคุณตรวจสอบเนื้อหาของกล่องแล้ว ให้ใช้ List Comprehensions เพื่อสร้างรายการใหม่ที่ไม่มีรายการที่ไม่จำเป็นอยู่ภายในค่าคงที่ของรายการ

หากเนื้อหาของกล่องมี: "package" , "string" หรือ "stuffing" ให้ใช้สูตรเดียวกับบทก่อนหน้าเพื่อจัดเรียงรายการ ตัวอย่างเช่น:

crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]

โค้ดด้านบนจะสร้างรายการใหม่ที่มีรายการที่ไม่รวมคำว่า "string" อยู่ในนั้น รายการเหล่านี้ควรจะมีชื่อว่า: herbs , spices , salts และ sugars คุณจะรู้ว่ารายการไหนควรตั้งชื่อตามนั้นเนื่องจากรายการภายในมีชื่อระบุไว้แล้ว

เมื่อสร้างรายการทั้งสี่เสร็จแล้ว ถึงเวลานำมารวมกันในรูปแบบ รายการซ้อน สร้างรายการชื่อ seasonings และเพิ่มรายการที่คุณสร้างไว้เข้าไปในรายการใหม่ ดังนี้:

seasonings = [ ] seasonings.append(herbs) .......

เมื่อรวมรายการทั้งหมดเข้าด้วยกันในรูปแบบ รายการซ้อน แล้ว ให้เดินไปยังเครื่องหมาย X สีเข้มบนพรมสีเขียวและหันไปยังชั้น ใช้ฟังก์ชัน speak() ควบคู่กับรายการซ้อน seasonings เพื่อตรวจสอบรายการบนชั้นแต่ละชั้น จากนั้นใช้ฟังก์ชัน place() ร่วมกับรายการเพื่อทำภารกิจให้สำเร็จ เช่น: player.speak(seasonings)

หนังสือโค้ด