[英]Python function: return list of lists, and simple list --> ValueError (too many values to unpack)
[英]List of lists and "Too many values to unpack"
我正在尝试在列表列表上使用以下代码来创建一个新的列表列表,其新元素是旧列表中列表中元素的某种组合......如果这有意义的话! 这是代码:
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():
它以任意顺序迭代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
正如预期的那样。 这与 dicts 的工作方式类似,只有您可以在包含的列表中拥有两个、三个或任意多个项目。
您忘记使用枚举,您的意思是这样做:
for index,item in enumerate(outputList1) :
pass
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.