Python:将数组拆分为变量

Python:将数组拆分为变量,python,list,Python,List,我有一个返回列表的函数。调用方不知道此列表的长度 def get_array(): ret = [1, 2] return ret var1, var2 = get_array() 这将设置var1=1和var2=2。这适用于所有列表,但长度小于2时除外。例如,如果列表的长度为1: def get_array(): ret = [1] return ret var1 = get_array() 这将var1设置为[1],但我希望var1为1。是否有一种

我有一个返回列表的函数。调用方不知道此列表的长度

def get_array():
    ret = [1, 2]
    return ret

var1, var2 = get_array()
这将设置var1=1和var2=2。这适用于所有列表,但长度小于2时除外。例如,如果列表的长度为1:

 def get_array():
    ret = [1]
    return ret

 var1 = get_array()

这将var1设置为[1],但我希望var1为1。是否有一种更干净的方法可以在不检查数组长度的情况下解包此数组?

当然,如果结果列表的大小已知,请使用相同的表示法:

var1, = [1]  # var1 is set to 1

当然,如果结果列表的大小已知,请使用相同的表示法:

var1, = [1]  # var1 is set to 1

如果您使用的是python3,您可以使用splatted unpacking语法来帮助您:

In [113]: a,*b = [1]

In [114]: a
Out[114]: 1

In [115]: b
Out[115]: []

基本上,这允许您将get_array[1:]解包到b中,b将为空,如果get_array返回大小为1的列表,如果您使用的是python3,您可以使用splatted解包语法来帮助您:

In [113]: a,*b = [1]

In [114]: a
Out[114]: 1

In [115]: b
Out[115]: []

基本上,这允许您将get_数组[1:]解包到b中,如果get_数组返回大小为1的列表,则b将为空?显然,您需要知道它的长度,以决定在赋值的左侧使用多少个变量。无论如何,这有什么意义?var1,=get\u array什么?显然,您需要知道它的长度,以决定在赋值的左侧使用多少个变量。在任何情况下,有什么意义?var1,=get\u数组