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 |