将函数的部分输出作为参数传递给另一个函数?

时间:2017-04-24 02:05:02

标签: python function

我现在一直在努力解决这个问题并且可以使用一些指导。原则上,我想做的事情很简单。我有3个函数,包括main()

第一个函数返回3个输出(所有字典),然后我在main中调用。总的来说,我只是通过提供字典名称和索引来打印我需要的输出。

我的第二个函数需要将第一个函数的最后一个返回输出作为其唯一参数。然后,此函数需要存储键名和该键出现在第一个函数生成的字典中作为另一个字典的次数。

所以伪代码看起来像这样:

fcn a(x,y,z)  
  return x,y,z

fcn b(a(x))  
  c = {key: count(key)}  
  return c

fcn main()  
  print(a(x))  
  print(c)  

希望这是有道理的。我确实找到了一些帮助将函数作为参数传递给其他函数,但是将一个函数的实际输出传递给另一个函数是不是很有意义。

1 个答案:

答案 0 :(得分:0)

当您的函数返回时,您可以将其输出分配给变量,如下所示:

x_out, y_out, z_out = a(x, y, z)

然后,只需将您想要的任何变量传递给第二个函数:

b(x_out)

它没有按照你期望的方式工作的原因是,当你从Python中的一个函数返回多个东西时,你实际上正在返回一个叫做'元组'的东西。因此,给出以下代码:

def a(x, y, z):
    return x, y, z

foo = a(1, 2, 3)

foo的值为(1, 2, 3);元组在第一个位置包含值1,在第二个位置包含2,在第三个位置包含3

如果你用第一个函数调用第二个函数,就像这样:

def b(input):
    print(type(input), repr(input))

b(a(1, 2, 3))

你会看到input是一个包含所有三个值的元组。