“ValueError:没有足够的值来解压(预期为 2,实际为 0)”

Lin*_*ink 5 python

我正在尝试使用 python 中的 for 循环创建列表列表。我的计划是使用两个单独的循环;一个循环创建大列表以放入小列表,另一个循环创建小列表并将它们附加到大列表。

这被用来制作“战舰”类型的游戏,其中有 10x10 网格。

这是我遇到困难的代码块:

for i in range(0,10):
    (newlist,(i))=[]
Run Code Online (Sandbox Code Playgroud)

该特定代码要完成的唯一任务是创建 10 个新列表,每个列表都有不同的名称。例如,循环的第一个循环将创建list0,第二个循环将创建list1,依此类推,直到list9

从理论上讲,我认为这段代码没有任何问题。当您将字符串放入新变量而不是创建新列表时,它也可以工作。

每当我运行该程序时,我都会收到错误

ValueError: not enough values to unpack (expected 2, got 0)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这种情况,如果这里有人能帮助我,我将非常感激。

For*_*Bru 4

您似乎有一个名为 的变量list,您想用一些列表填充该变量。您的代码不起作用,因为此语法用于从右侧的可迭代对象中提取两条数据。显然,[]它是空的,所以你无法从中提取任何内容。

你可以这样做:

your_list = [list() for x in range(9)] 
Run Code Online (Sandbox Code Playgroud)

请注意,您不应调用该变量list,因为存在一个同名的内置函数,该函数会构造一个空列表。现在该变量使得内置函数无法访问。

编辑: 如果您需要有 10 个列表列表:

your_list = [[[] for x in range(9)] for y in range(10)]
Run Code Online (Sandbox Code Playgroud)

然后,your_list将是一个包含 10 个列表列表的列表。