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ả
Hướng dẫn bài tập
combinationstừ mô-đunitertoolsđã đượ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_pairschứa tất cả các cặp loại Pokémon có thể có (mỗi cặp có2loại Pokémon).- Tạo một danh sách rỗng tên là
enumerated_tuplesphí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_tuplesthà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)