如何忽略Python中多输出函数的输出?

问题描述:

假设我有一个功能:如何忽略Python中多输出函数的输出?

def f(): 
    ... 
    ... 
    ... 
    return a,b,c 

,我想只有b。在功能的输出。我必须使用哪项任务?

谢谢。

可以解压返回的元组到一些虚拟变量:

_, keep_this, _ = f() 

它不必是_,只是一些明显未使用。

(不要在交互式解释使用_作为一个虚拟的名字,那里被用于保持最后的结果。)

 

另外,指数返回的元组:

keep_this = f()[1] 
+1

由几秒钟打我吧!该死! – feralin 2013-03-24 19:53:00

+0

我找不到虚拟变量的任何文档。任何帮助? – Cupitor 2013-03-24 19:54:19

+1

@Naji基本上,代码所做的就是将元组的三个部分分配给三个变量。单个下划线是一个有效的变量名称,并且可以在一个解构赋值中分配多次。所以当这个任务完成时,你将有两个变量:keep_this和元组中的中间值,而_(如果我是正确的)等于元组中的最后一个值。你应该查看解构赋值以了解更多信息。 – feralin 2013-03-24 19:56:38

你在做什么与return a,b,c线正在创建一个tuple,然后从函数返回它。所以你可以使用元组解构来从结果中获得你想要的值。例如:

def f(x): 
    return x, x + 1, x + 2 
_, b, _ = f(0) 
print(b) # prints "1" 
+0

作为一个侧面的问题,为什么代码都在一行?我在几行输入了它...... – feralin 2013-03-24 19:54:25

+0

你设法把[SOH](http://en.wikipedia.org/wiki/Start-of-Header#SOH)(0x01,CTRL-A)字符放在那里。 – 2013-03-24 19:59:28

+0

我不知道我是如何设法做到的! – feralin 2013-03-24 20:01:24

def f(): 
    return 1,2,3 

这里,f()返回一个元组(1,2,3)所以你可以做这样的事情:

a = f()[0] 
print a 
1 

a = f()[1] 
print a 
2 

a = f()[2] 
print a 
3