Python 得到一个;“值太多,无法解包”;值错误

Python 得到一个;“值太多,无法解包”;值错误,python,Python,我看过其他答案,但看起来它们使用了两个不同的值。 守则: 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' 所以基本上,它需要输出: '| X | a | b | c |' '| Y

我看过其他答案,但看起来它们使用了两个不同的值。

守则:

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'
所以基本上,它需要输出:

'| X | a | b | c |'
'| Y | d | e | f |'
'| z | g | h | i |'
但是,我得到了这个错误:

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
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
对于用户范围内的u、g(len(用户)):
ValueError:要解压缩的值太多
据我所知,user和range(len(user))的值相等

for u,g  in user, range(len(user)):
实际上相当于:

for u,g  in (user, range(len(user))):
i、 e一个元组。它首先返回
用户
列表,然后返回
范围
。由于
user
中存在的项目数为
3
,而在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

以下代码也适用:

>>> for i in zip(user,info):

    print i[0],'|',

    for x in i[1]:

        print x,'|',

    print
我得到了输出:

X | a | b | c |
Y | d | e | f |
Z | g | h | i |

注:我知道有几个答案,但我只是认为这也是一种获得结果的方法,这就是为什么我添加了它

旁白:如果您确实想要一个列表及其索引,请尝试:
在enumerate(用户):
中为g,u指定。但是,正如其他人所说,在这种情况下,您不需要索引,而是需要
zip
>>> g = 0
>>> for u in user:
...     print '|',u,'|',info[g][0],'|',info[g][1],'|',info[g][2],'| \n'
...     g=g+1
... 
| X | a | b | c | 

| Y | d | e | f | 

| Z | g | h | i | 
>>> for i in zip(user,info):

    print i[0],'|',

    for x in i[1]:

        print x,'|',

    print
X | a | b | c |
Y | d | e | f |
Z | g | h | i |