1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Hộp Công Cụ Python

Connected

Bài tập

Dùng * và zip để "gỡ zip"

Bạn đã biết dùng zip() và cách in ra các giá trị từ một đối tượng zip. Tuyệt vời!

Hãy nghịch thêm với zip() một chút. Không có hàm unzip để làm ngược lại những gì zip() thực hiện. Tuy nhiên, ta có thể đảo ngược những gì đã được "zip" lại bằng cách dùng zip() với một chút trợ giúp từ *! * sẽ bung một iterable như list hoặc tuple thành các đối số theo vị trí trong lời gọi hàm.

Trong bài tập này, bạn sẽ dùng * trong một lời gọi zip() để bung các tuple do zip() tạo ra.

Hai tuple chuỗi, mutants và powers, đã được nạp sẵn.

Hướng dẫn

100 XP
  • Tạo một đối tượng zip bằng cách gọi zip() với mutants và powers, theo đúng thứ tự đó. Gán kết quả cho z1.
  • In các tuple trong z1 bằng cách bung chúng thành các đối số theo vị trí bằng toán tử * trong một lời gọi print().
  • Vì lời gọi print() trước đó sẽ dùng hết các phần tử trong z1, hãy tạo lại đối tượng zip bạn đã định nghĩa trước và lại gán kết quả cho z1.
  • "Gỡ zip" các tuple trong z1 bằng cách bung chúng thành các đối số theo vị trí bằng toán tử * trong một lời gọi zip(). Gán kết quả lần lượt cho result1 và result2.
  • Các câu lệnh print() cuối cùng sẽ in kết quả so sánh result1 với mutants và result2 với powers. Bấm Gửi câu trả lời để xem result1 và result2 sau khi bung có tương đương với mutants và powers tương ứng hay không.