如何忽略Python中多输出函数的输出?
答
可以解压返回的元组到一些虚拟变量:
_, keep_this, _ = f()
它不必是_
,只是一些明显未使用。
(不要在交互式解释使用_
作为一个虚拟的名字,那里被用于保持最后的结果。)
另外,指数返回的元组:
keep_this = f()[1]
答
你在做什么与return a,b,c
线正在创建一个tuple
,然后从函数返回它。所以你可以使用元组解构来从结果中获得你想要的值。例如:
def f(x):
return x, x + 1, x + 2
_, b, _ = f(0)
print(b) # prints "1"
答
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
由几秒钟打我吧!该死! – feralin 2013-03-24 19:53:00
我找不到虚拟变量的任何文档。任何帮助? – Cupitor 2013-03-24 19:54:19
@Naji基本上,代码所做的就是将元组的三个部分分配给三个变量。单个下划线是一个有效的变量名称,并且可以在一个解构赋值中分配多次。所以当这个任务完成时,你将有两个变量:keep_this和元组中的中间值,而_(如果我是正确的)等于元组中的最后一个值。你应该查看解构赋值以了解更多信息。 – feralin 2013-03-24 19:56:38