python - for 循环 - 没有足够的值来解包(预期 3,得到 2),但我提供了 3
问题描述
def func(a,b,c):
for x,y,z in a,b,c:
pass
func(((1,2),(1,3)),((1,4),(1,5)),(1,2))
我希望x,y,z
得到值(1,2)
,(1,4)
和1
。相反,我收到一个错误:
ValueError: not enough values to unpack (expected 3, got 2)
解决方案
您需要压缩列表才能执行这样的 for 循环,而无需遍历传入的参数func()
:
def func(a,b,c):
for x,y,z in zip(a,b,c):
pass
func(((1,2),(1,3)),((1,4),(1,5)),(1,2))
否则,for 循环将遍历传入的每个参数func
。
推荐阅读
- vba - 从 Word VBA 编辑 PowerPoint 演示文稿页脚
- arrays - JQ将数据从一个文件推送到另一个文件的嵌套数组中
- r - 如何根据R中另一个文件的多个条件选择文件行?
- angular - 使用 ngFor 插值将 Angular JS 转换为 Angular
- google-cloud-platform - 从谷歌云存储桶触发 python 代码以针对另一个存储桶中的 CSV 文件运行
- c - 读取输入并打印特定输出
- python-3.x - 如何在异常情况下传输自定义数据?
- laravel - 这是 Laravel、Eloquent、简单查询或原始查询的快速查询
- linux - 使用 sed 替换特定字符串
- image - 将 byte[] 图像添加到 Crystal 报表