鱼C论坛

 找回密码
 立即注册
查看: 1644|回复: 5

[已解决]关于ValueError: too many values to unpack (expected 2)

[复制链接]
发表于 2022-4-4 17:31:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这个报错是怎么出来的呀。。。 我看经常会报这种错,如果出现了 我这个解决这个bug的思路是什么啊

>>> x = [1, 2, 3, 4, 5]
>>> y = "FishC"
>>> for i, j in x, y:
...     print(i, j)
...
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    for i, j in x, y:
ValueError: too many values to unpack (expected 2)
最佳答案
2022-4-4 18:02:01
Victor0321 发表于 2022-4-4 17:56
emmm   您的意思是: (x,y)这个元组是([1,2,3,4,5],'fishc')他无法直接解包给i,j, 需要转换成((1,f),(2, ...


是(x, y) 这个元组的元素 x 和 y 都有 5 个元素,所以无法解包给 i, j 两个变量,

当然,你可以加个打包:for i, *j in x, y

但是这样很明显不是你的需求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-4 17:34:55 | 显示全部楼层
x = [1, 2, 3, 4, 5]
y = "FishC"
for i, j in zip(x, y):
    print(i, j)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-4 17:43:57 | 显示全部楼层

emmm 他这个报错是为啥啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-4 17:47:00 | 显示全部楼层
本帖最后由 isdkz 于 2022-4-4 17:48 编辑
Victor0321 发表于 2022-4-4 17:43
emmm 他这个报错是为啥啊


for i, j in x, y 相当于 for i, j in (x, y) 也就是把 x, y 当成元组,

他会把迭代出的每一项解包给 i 和 j,而你的 x 和 y 都有 5 个元素,是没法解包给 2 个变量的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-4 17:56:09 | 显示全部楼层
isdkz 发表于 2022-4-4 17:47
for i, j in x, y 相当于 for i, j in (x, y) 也就是把 x, y 当成元组,

他会把迭代出的每一项解包 ...

emmm   您的意思是: (x,y)这个元组是([1,2,3,4,5],'fishc')他无法直接解包给i,j, 需要转换成((1,f),(2,i)(3,s)(4,h)(5,c))这个元组才能一一解包给对应的i,j 变量 循环5次么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-4 18:02:01 | 显示全部楼层    本楼为最佳答案   
Victor0321 发表于 2022-4-4 17:56
emmm   您的意思是: (x,y)这个元组是([1,2,3,4,5],'fishc')他无法直接解包给i,j, 需要转换成((1,f),(2, ...


是(x, y) 这个元组的元素 x 和 y 都有 5 个元素,所以无法解包给 i, j 两个变量,

当然,你可以加个打包:for i, *j in x, y

但是这样很明显不是你的需求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 21:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表