Python:将数组拆分为变量

时间:2017-07-04 15:17:27

标签: python list

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

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

var1, var2 = get_array()

这会设置var1 = 1var2 = 2。这适用于所有列表,除非长度小于2.例如,如果列表的长度为1:

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

 var1 = get_array()

这会将var1设置为[1],但我希望var11。是否有一种更清洁的方法来解压缩这个数组而不必检查它的长度?

2 个答案:

答案 0 :(得分:7)

如果你正在使用python3,你可以使用splatted unpacking语法来帮助你:

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

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

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

基本上,如果get_array()[1:]返回大小为1的列表,则可以将b解压缩到get_array(),这将是空的

答案 1 :(得分:2)

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

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