python - 获取 "too many values to unpack"值错误

标签 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'

所以基本上,它需要输出:

'| 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

据我所知,user 和 range(len(user)) 具有相同的值(value)。

最佳答案

for u,g  in user, range(len(user)):

实际上等同于:

for u,g  in (user, range(len(user))):

即一个元组。它首先返回 user 列表,然后返回 range。由于 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

你在这里寻找 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 |

关于python - 获取 "too many values to unpack"值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17427548/

相关文章:

python - LabelPropagation - 如何避免被零除?

python - 使用 Python 从 OpenCV 中的扫描中裁剪矩形照片

python - 使用 python 和调用函数自省(introspection) C++ dll

python - 使用 Python 进行 2D 热传导

Python 多处理脚本在运行数小时后死掉

python - OSError : locale. 错误 - 不支持的区域设置

python - Python中的非消耗性正则表达式拆分

python - 如何检查列表中元素的索引? (Python)

python - 只读的django多数据库

python - 只读取包含大量列的大型文本数据文件的最后一列