如何从python函数返回两个变量并访问其值而不调用两次?

时间:2019-05-02 19:17:24

标签: python

假设我具有以下功能:

def f():
   return [1,2,3], [4,5,6]

我可以成功调用此函数,如下所示:

a,b = f() 
print(a,b) #prints [1, 2, 3] [4, 5, 6]

但是假设我只想访问第一个列表的第一项(1)和第二个列表的第一项(4)。为此,我成功地将其命名如下:

a,b = f()[0][0], f()[1][0]
print(a,b) #prints 1 4

我无法控制函数f(),因为它是在库中编写的。

在Python中是否可以执行最后一个操作,而无需两次调用该函数并且不使用返回的a和b值?

1 个答案:

答案 0 :(得分:9)

使用extended unpacking assignment

>>> def f():
...    return [1,2,3], [4,5,6]
... 
... 
>>> [a0, *rest], [b0, *rest] = f()
>>> a0, b0
(1, 4)

使用zip-splat技巧:

>>> next(zip(*f()))
(1, 4)