整体式转换循环
所有可能的 Pokémon 类型列表已作为 pokemon_types 加载到您的会话中。为了方便,已在控制台中打印。
您希望收集所有可能的 Pokémon 类型配对。您想把每个配对都存储为一个独立的列表,并在每个列表的第一个元素放入该配对的序号索引。这样既能看到配对的总数,也为每个配对提供了编号标签。
下面的循环用于完成此任务:
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)
让我们使用整体式转换来使这个循环更高效。
本练习是课程的一部分
高效编写 Python 代码
练习说明
- 会话中已加载
itertools模块中的combinations。使用它创建一个名为possible_pairs的列表,包含所有可能的 Pokémon 类型配对(每个配对包含2个 Pokémon 类型)。 - 在 for 循环上方创建一个名为
enumerated_tuples的空列表。 - 使用一个内置函数将
enumerated_tuples中的每个元组转换为列表。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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)