2017-03-03 62 views
0

这是一个读取名称长度为宽度和高度的熊猫数据框的示例代码,所有这些名称都包含每个名称变量下面的浮点数。我试图返回各自的变量下的每个浮动,但我似乎无法弄清楚如何返回多个变量。任何帮助,将不胜感激。返回多个函数

def volume(length, width, height): 
    for i in pdf[length]: 
     return (i) 
    for i in pdf[width]: 
     return (i) 
    for i in pdf[height]: 
     return (i) 

打印(体积( '长度', '宽度', '高度'))

+0

在开始时是否缺少'def'?而且不应该缩减代码的其余部分吗? – Barmar

+0

您不能在函数中多次使用'return'。你应该返回一个包含所有值的元组。不过,目前还不清楚为什么你有'for'循环。 – Barmar

+1

[你如何在Python中返回多个值?](http://stackoverflow.com/questions/354883/how-do-you-return-multiple-values-in-python) –

回答

1

可以返回的元组或字典,并将其分配给变量:

随着一个元组:

volume(length, width, height): 
    .... 
    return (pdf[length], pdf[width], pdf[height]) 

,然后调用函数拆包元组,像这样:

l, w, h = *volume(x, y, z) 

或字典

return {'length': pdf[length], 'width': pdf[width], 'height': pdf[height]} 

在这种情况下,可以将结果分配到单个字典可变,通过键引用每个值(例如:result['width']

最后,也可以使用一个具有3个独立成员变量的对象。如果您认为为您的课程定义课程是值得的。

+1

它不应该'返回pdf [长],...'? – Barmar

+0

是的。我不清楚他是否只返回三维,或者是三维的列表。 for循环令我困惑。我将展开代码,并等待OP澄清 – JavoSN

+0

也让我困惑。 – Barmar