我正在尝试在列表列表中使用以下代码来创建一个新的列表列表,其新元素是旧列表中列表元素的特定组合......如果这有意义的话!这是代码:
for index, item in outputList1:
outputList2 = outputList2.append(item[6:].extend(outputList1[index+1][6:]))
但是,我收到“要解压的值太多”错误。我什至似乎收到以下代码的错误:
for index, item in outputList1:
pass
我做错了什么?
最佳答案
for
语句迭代可迭代对象——在列表的情况下,它逐一迭代内容,因此在每次迭代中,一个值可用。
当使用 for index, item in list:
时,您正试图将一个值解包为两个变量。这将与 for key, value in dict.items():
一起工作,它以任意顺序迭代字典键/值。因为你似乎想要一个数字索引,所以存在一个函数 enumerate()
获取可迭代的值,以及它的索引:
for index, item in enumerate(outputList1):
pass
编辑:因为你的问题的标题提到了“列表的列表”,我应该指出,当遍历一个列表时,解包成多个变量将有效如果每个列表项是本身是一个可迭代的。例如:
list = [ ['a', 'b'], ['c', 'd'] ]
for item1, item2 in list:
print item1, item2
这将输出:
a b c d
如预期。这与字典的工作方式类似,只是您可以在包含的列表中包含两个、三个或任意多个项目。
关于python - Lists 列表和 "Too many values to unpack",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386107/