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

Vòng lặp chuyển đổi tổng thể

Danh sách tất cả các loại Pokémon khả dĩ đã được nạp vào phiên của bạn dưới tên pokemon_types. Danh sách này đã được in ra bảng điều khiển để bạn tiện theo dõi.

Bạn muốn thu thập tất cả các cặp loại Pokémon có thể có. Bạn muốn lưu mỗi cặp này trong một danh sách riêng, với một chỉ số được đánh số thứ tự là phần tử đầu tiên của mỗi danh sách. Cách này giúp bạn thấy tổng số cặp có thể có và cung cấp một nhãn chỉ mục cho từng cặp.

Vòng lặp dưới đây được viết để hoàn thành nhiệm vụ này:

enumerated_pairs = []

for i,pair in enumerate(possible_pairs, 1):
    enumerated_pair_tuple = (i,) + pair
    enumerated_pair_list = list(enumerated_pair_tuple)
    enumerated_pairs.append(enumerated_pair_list)

Hãy làm cho vòng lặp này hiệu quả hơn bằng cách dùng một chuyển đổi tổng thể.

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

Viết mã Python hiệu quả

Xem khóa học

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

  • combinations từ mô-đun itertools đã được nạp vào phiên của bạn. Hãy dùng nó để tạo một danh sách tên là possible_pairs chứa tất cả các cặp loại Pokémon có thể có (mỗi cặp có 2 loại Pokémon).
  • Tạo một danh sách rỗng tên là enumerated_tuples phía trên vòng lặp for.
  • Sử dụng một hàm dựng sẵn để chuyển đổi mỗi tuple trong enumerated_tuples thành list.

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.

# Collect all possible pairs using combinations()
possible_pairs = [*____(pokemon_types, ____)]

# Create an empty list called enumerated_tuples
____ = ____

for i,pair in enumerate(possible_pairs, 1):
    enumerated_pair_tuple = (i,) + pair
    enumerated_tuples.append(enumerated_pair_tuple)

# Convert all tuples in enumerated_tuples to a list
enumerated_pairs = [*____(____, enumerated_tuples)]
print(enumerated_pairs)
Chỉnh sửa và Chạy Mã