<p>得到的错误是因为您在尝试按索引遍历列表时正在对列表进行变异(从列表中删除项)(因此,当范围循环到达上一个for循环中的值时,索引2已不存在)。你知道吗</p>
<p>您可以简化方法,只需使用一个范围循环,使用与要输出的组的大小相等的步骤,对随机无序排列的列表进行切片。下面是一种方法,它将生成的组放在一个列表中,然后输出与示例类似的结果。你知道吗</p>
<pre><code>import random
top_twelve_players_info = [['Krombopulos Michael', 10, 3], ['Scary Terry', 2, 11], ['Jerry Smith', 7, 6], ['Blim Blam ', 11, 2], ['Summer Smith', 1, 12], ['Tophat Jones', 5, 8], ['Beth Smith', 6, 7], ['Abradolf Lincler', 4, 9], ['Alan Rails', 12, 1], ['Morty Smith', 3, 10], ['Rick Sanchez', 9, 4], ['Xenon Bloom', 3, 10]]
random.shuffle(top_twelve_players_info)
groups = [top_twelve_players_info[i:i+3] for i in range(0, 12, 3)]
for i, group in enumerate(groups):
print(f'Group {i + 1}: {group}')
# EXAMPLE OUTPUT (differs based on random shuffle results)
# Group 1: [['Beth Smith', 6, 7], ['Scary Terry', 2, 11], ['Krombopulos Michael', 10, 3]]
# Group 2: [['Xenon Bloom', 3, 10], ['Rick Sanchez', 9, 4], ['Tophat Jones', 5, 8]]
# Group 3: [['Morty Smith', 3, 10], ['Abradolf Lincler', 4, 9], ['Jerry Smith', 7, 6]]
# Group 4: [['Summer Smith', 1, 12], ['Alan Rails', 12, 1], ['Blim Blam ', 11, 2]]
</code></pre>
<p>或者如果您真的需要将每个组分配给它自己的变量:</p>
<pre><code>[group_1, group_2, group_3, group_4] = [top_twelve_players_info[i:i+3] for i in range(0, 12, 3)]
print(f'Group 1: {group_1}')
print(f'Group 2: {group_2}')
print(f'Group 3: {group_3}')
print(f'Group 4: {group_4}')
</code></pre>