开始使用免费开始使用

整体式转换循环

所有可能的 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)
编辑并运行代码