python - Lists 列表和 "Too many values to unpack"

标签 python

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

 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/

相关文章:

python - 使用 python 查找视频中的图像

python - CookieConflictError - 尝试以编程方式登录 Google 财经时出现 APISID

Python Tkinter : Bind function with labels in for loop

python - cx_Oracle - DLL 加载失败 : %1 is not a valid Win32 application. python

python - 从 python3 程序调用 firefox 的正确方法是什么?

python - 声明时无法识别整数

python - 如何通过python的re模块从字符串末尾删除最短的匹配模式?

python - 提取多行 int 对象的第一个元素

python - 根据 Python 中的模式拆分字符串

python - SQLAlchemy 匹配子句