如何将多个输出变量放入列表中?

How can I get multiple output variables into a list?

我想知道是否有办法将一个函数的多个输出放入一个列表中。我对在函数内部创建列表不感兴趣,因为我不想浪费你的时间。

我知道我期望有多少输出变量,但只能通过使用 annotations[""return"] 表达式(或任何你称之为的东西,抱歉noobish 术语),这因情况而异,这就是为什么我需要它是动态的。

我知道我可以使用函数 (*myList) 将列表用作多个变量,但我感兴趣的是在从函数接收 return 值时是否有方法进行等效操作。

干杯!

伪代码:

function():
   x = 1
   y = 2
   return x, y

variables = function()
print(variables[0], " and ", variables[1]

result should be = "1 and 2"

是的,使用解包赋值表达式 ex a,b,c= myfunction(...),您可以将 * 放在其中一个中,以使其采用可变数量的参数

>>> a,b,c=range(3) #if you know that the thing contains exactly 3 elements you can do this
>>> a,b,c
(0, 1, 2)
>>> a,b,*c=range(10) #for when you know that there at least 2 or more the first 2 will be in a and b, and whatever else in c which will be a list
>>> a,b,c
(0, 1, [2, 3, 4, 5, 6, 7, 8, 9])
>>> a,*b,c=range(10)
>>> a,b,c
(0, [1, 2, 3, 4, 5, 6, 7, 8], 9)
>>> *a,b,c=range(10)
>>> a,b,c
([0, 1, 2, 3, 4, 5, 6, 7], 8, 9)
>>> 

此外,您可以 return 从一个函数中获取任何您想要的东西,一个列表、一个元组、一个字典等等,但只有一件事

>>> def fun():
        return 1,"boo",[1,2,3],{1:10,3:23}

>>> fun()
(1, 'boo', [1, 2, 3], {1: 10, 3: 23})
>>> 

在这个例子中,它 return 一个包含所有这些东西的元组,因为 , 是元组构造函数,所以它首先创建一个元组(你的一件事)然后 return 它