Bắt đầu ngayBắt đầu miễn phí

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, mutantspowers, đã được nạp sẵn.

Bài tập này là một phần của khóa học

Hộp Công Cụ Python

Xem khóa học

Hướng dẫn bài tập

  • Tạo một đối tượng zip bằng cách gọi zip() với mutantspowers, 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 result1result2.
  • Các câu lệnh print() cuối cùng sẽ in kết quả so sánh result1 với mutantsresult2 với powers. Bấm Gửi câu trả lời để xem result1result2 sau khi bung có tương đương với mutantspowers tương ứng hay không.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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)
Chỉnh sửa và Chạy Mã