繁体   English   中英

列表列表和“解包的值太多”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM