我有一个返回列表的函数。调用者不知道此列表的长度。
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
。是否有一种更清洁的方法来解压缩这个数组而不必检查它的长度?
答案 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