在Python中返回多个值?

Python函数可以返回多个值。这些值可以直接存储在变量中。函数不限于返回变量,它可以返回零,一,两个或多个值。

这是python的默认属性,用于返回多个值/变量,而在许多其他编程语言(如C ++或Java)中则不可用。

为了从一个函数返回多个值,我们可以根据需要返回元组,列表或字典对象。

方法1:使用元组

def func(x):
   y0 = x+ 1
   y1 = x * 3
   y2 = y0 ** 3
   return (y0, y1, y2)

但是,上述程序随着返回的值数量增加而出现问题。如果我们要返回六个或七个值?当然,我们可以继续修改它们,但是很容易忘记哪个值在哪里。而且,无论我们想在哪里接收它们,打开它们的包装都不会太混乱。

方法2:使用字典

另一个更好的解决方案是使用字典。

def func(x):
   y0 = x+ 1
   y1 = x * 3
   y2 = y0 ** 3
   return {'y0': y0, 'y1': y1, 'y2': y2}

现在,我们有了一种机制,可以投影出返回对象的特定成员。

例如-

result[‘y1’]

方法3:使用类

另一种选择是使用类,我们可以在其中返回专门的结构。

class ReturnValue(obj):
   def __init__(self, y0, y1, y2):
      self.y0 = y0
      self.y1 = y1
      self.y2 = y2

def g(x):
   y0 = x + 1
   y1 = x * 3
   y2 = y0 ** 3
   return ReturnValue (y0, y1, y2)

方法4:使用列表

另一种方法是使用列表。

def func(x):
   result = [x + 1]
   result.append(x * 3)
   result.append(y0 ** 3)
   return result

方法5:使用生成器

我们可以选择使用yield来逐个返回多个值的选项,以防万一我们必须返回大量的值,那么使用序列可能会消耗大量系统资源。

def func(x):
   y0 = x + 1
   yield y0
   yield x * 3
   yield y0 ** 3

哪种方法最好从一个函数返回多个值?

这完全取决于您的口味或要求,您更喜欢哪种方法。您可以选择–词典路线,因为它涉及的设置工作较少。或者您可以选择–类路线,因为这可以帮助您避免混淆词典所代表的含义。或者,您可以选择生成器以一一生成值。