解压 for 循环中的列表列表不起作用

Posted

技术标签:

【中文标题】解压 for 循环中的列表列表不起作用【英文标题】:unpack list of lists in for loop not working 【发布时间】:2014-07-06 14:10:36 【问题描述】:

我有:

master_list = [['001', '15\n', '963789', '40\n', '741239', '80\n', '985697', '80\n', '854698', '35\n', '965874', '10\n'],
 ['002', '25\n', '326574', '65\n', '944223', '40\n', '312689', '45\n', '225869', '80\n', '789654', '35\n'],
 ['003', '10\n', '857963', '50\n', '253698', '40\n', '965478', '50\n', '186458', '40\n', '351296', '40\n'],
 ['004', '20\n', '675964', '40\n', '612985', '40\n', '653674', '35\n', '957296', '50\n', '852169', '40\n'],
 ['005', '13', '246912', '40\n', '371956', '40\n', '819736', '40\n', '915745', '50\n', '197548', '40']]

我试图解压为:

for a,b,c,d,e, in master_list:
        print(a,b,c,d,e)

得到异常:

ValueError: too many values to unpack (expected 5)

为什么会这样。我没看错

【问题讨论】:

您在 5 个变量上解压缩超过 5 个值。你认为其他人应该怎么办? 为什么e后面有逗号(e,在masterlist中)? 错字对不起 【参考方案1】:

错误是正确的,嵌套列表中有 12 个项目,而您只提供 5 个变量来解压缩。如果你只是打印它们,你可以这样做:

for l in master_list:
    print(*l)

【讨论】:

【参考方案2】:

在 python3 中,你可以这样解决任意长度的问题:

for a,b,c,d,e,*_ in master_list:
    print(a,b,c,d,e)

【讨论】:

以上是关于解压 for 循环中的列表列表不起作用的主要内容,如果未能解决你的问题,请参考以下文章

循环转换/提取pandas DataFrame中的json数据不起作用

为啥这种 for 循环并行化在 Python 中不起作用?

如果拆分列表上的语句不起作用python3

Jinja / Django for 循环范围不起作用

Vue.js v-for 循环遍历数组不起作用(非零长度的零元素)

循环遍历数据框列表时功能不起作用