繁体   English   中英

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

[英]Pass partial output of a function to another function as an argument?

我一直在为此苦苦挣扎,可以使用一些指导。 原则上讲,我想做的很简单。 我有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)  

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

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

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是一个包含所有三个值的元组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM