python

时间:2018-08-23 04:25:25

标签: python

您好,我想弄清楚为什么它不起作用

def fun():
   a = [1,4]
   b = [2,5]
   c = [3,6]
   return a,b,c

我想打印abc,但调用print(x)print(y)print(z)

for x,y,z in fun():
   print(x)

我唯一得到的就是

  

ValueError:没有足够的值可解压缩(预期3,得到2)

1 个答案:

答案 0 :(得分:5)

您可以执行以下操作:

def fun():
   a = [1,4]
   b = [2,5]
   c = [3,6]
   return a,b,c

for item in fun():
    print(item)

或者:

x,y,z = fun()
print(x)

您不能像现在那样遍历函数的返回值。

编辑:

这样做的问题

for x,y,z in fun():

fun()等于([1,4], [2,5], [3,6])。这意味着在遍历该元组时没有z值。因此,如果您想这样做,可以这样做:

for x,y in fun():
   print(x,y)

尽管您不会打印列表,但会遍历列表中的每个项目并打印这些项目。

编辑功劳:Jeremy的评论。