获取"解压缩的值太多"值错误

use*_*668 4 python

我看了其他答案,但看起来他们使用了2个不同的值.

代码:

user = ['X', 'Y', 'Z']
info = [['a','b','c',], ['d','e','f'], ['g','h','i']]

for u, g in user, range(len(user)):
    print '|',u,'|',info[g][0],'|',info[g][1],'|',info[g][2],'| \n'
Run Code Online (Sandbox Code Playgroud)

基本上,它需要输出:

'| X | a | b | c |'
'| Y | d | e | f |'
'| z | g | h | i |'
Run Code Online (Sandbox Code Playgroud)

但相反,我得到这个错误:

Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    for u, g in user, range(len(user)):
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)

据我所知,用户和范围(len(用户))具有相同的价值.

Ash*_*ary 14

for u,g  in user, range(len(user)):
Run Code Online (Sandbox Code Playgroud)

实际上相当于:

for u,g  in (user, range(len(user))):
Run Code Online (Sandbox Code Playgroud)

即一个元组.它首先返回user列表然后range.作为项目的数量呈现user3和LHS你刚刚两个可变(u,b),所以你会得到这个错误.

>>> u,g = user
Traceback (most recent call last):
  File "<ipython-input-162-022ea4a14c62>", line 1, in <module>
    u,g = user
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)

你在zip这里寻找(并使用字符串格式而不是手动连接):

>>> user = ['X', 'Y', 'Z']
>>> info = [['a','b','c',], ['d','e','f'], ['g','h','i']]
for u, g in zip(user, info):
    print "| {} | {} |".format(u," | ".join(g))
...     
| X | a | b | c |
| Y | d | e | f |
| Z | g | h | i |
Run Code Online (Sandbox Code Playgroud)