列表清单和"解压缩的值太多"

Bit*_*rex 13 python

我正在尝试在列表列表中使用以下代码来创建新的列表列表,其新元素是旧列表中列表中元素的特定组合...如果这有意义!这是代码:

 for index, item in outputList1:
    outputList2 = outputList2.append(item[6:].extend(outputList1[index+1][6:]))
Run Code Online (Sandbox Code Playgroud)

但是,我收到"解压缩的值太多"错误.我似乎甚至得到以下代码的错误:

    for index, item in outputList1:
       pass
Run Code Online (Sandbox Code Playgroud)

我能做错什么?

Car*_*ers 20

该for语句迭代迭代 - 在列表的情况下,它逐个遍历内容,因此在每次迭代中,一个值可用.

使用时,for index, item in list:您尝试将一个值解压缩为两个变量.这将适用for key, value in dict.items():于以任意顺序迭代dicts键/值.由于您似乎想要一个数字索引,因此存在一个函数enumerate()可以获取可迭代的值,以及它的索引:

for index, item in enumerate(outputList1):
    pass
Run Code Online (Sandbox Code Playgroud)

编辑:由于你的问题的标题提到'列表列表',我应该指出,当迭代列表时,如果每个列表项本身是可迭代的,则解压缩到多个变量将起作用.例如:

list = [ ['a', 'b'], ['c', 'd'] ]
for item1, item2 in list:
    print item1, item2
Run Code Online (Sandbox Code Playgroud)

这将输出:

a b
c d

正如所料.这与dicts的工作方式类似,只有您可以在包含的列表中包含两个,三个或多个项目.


And*_*rew 11

你忘了使用枚举,你的意思是这样做:

for index,item in enumerate(outputList1) :
  pass
Run Code Online (Sandbox Code Playgroud)