เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การใช้ * และ zip เพื่อ 'unzip'

ตอนนี้รู้วิธีใช้ zip() และวิธีแสดงค่าจาก zip object แล้ว

มาลองเล่นกับ zip() อีกสักหน่อย ใน Python ไม่มีฟังก์ชัน unzip สำหรับทำสิ่งตรงข้ามกับ zip() โดยตรง อย่างไรก็ตาม เราสามารถย้อนกระบวนการที่ zip ทำไว้ได้ โดยใช้ zip() ร่วมกับ * ซึ่ง * จะ unpack iterable เช่น list หรือ tuple ให้เป็น positional arguments ในการเรียกฟังก์ชัน

ในแบบฝึกหัดนี้ จะได้ใช้ * ในการเรียก zip() เพื่อ unpack tuple ที่ zip() สร้างขึ้น

ได้โหลด tuple ของสตริงสองชุดไว้ล่วงหน้าแล้ว ได้แก่ mutants และ powers

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Python Toolbox

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง zip object โดยใช้ zip() กับ mutants และ powers ตามลำดับนี้ แล้วกำหนดผลลัพธ์ให้กับ z1
  • แสดง tuple ใน z1 โดย unpack ให้เป็น positional arguments ด้วยตัวดำเนินการ * ในการเรียก print()
  • เนื่องจากการเรียก print() ก่อนหน้าจะทำให้ elements ใน z1 หมดไป ให้สร้าง zip object ที่กำหนดไว้ก่อนหน้าขึ้นใหม่ และกำหนดผลลัพธ์ให้กับ z1 อีกครั้ง
  • 'Unzip' tuple ใน z1 โดย unpack ให้เป็น positional arguments ด้วยตัวดำเนินการ * ในการเรียก zip() แล้วกำหนดผลลัพธ์ให้กับ result1 และ result2 ตามลำดับนี้
  • คำสั่ง print() สุดท้ายจะแสดงผลการเปรียบเทียบ result1 กับ mutants และ result2 กับ powers คลิก ส่งคำตอบ เพื่อดูว่า result1 และ result2 ที่ unpack แล้วเทียบเท่ากับ mutants และ powers ตามลำดับหรือไม่

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create a zip object from mutants and powers: z1
z1 = ____

# Print the tuples in z1 by unpacking with *
print(____)

# Re-create a zip object from mutants and powers: z1
z1 = ____

# 'Unzip' the tuples in z1 by unpacking with * and zip(): result1, result2
result1, result2 = ____

# Check if unpacked tuples are equivalent to original tuples
print(result1 == mutants)
print(result2 == powers)
แก้ไขและรันโค้ด