我想在一个方法中返回多个值,包括一个列表。
以下工作正常:
def foo():
a = 42
b = [1,2]
return a, b
aa, b_list = foo()
aa, (b1, b2) = foo()
但我不知道如何得到没有第一个元素的列表:
def bar():
a = 42
b = [1,2,3]
return a, b
aa, (_, b_list) = bar()
print(b_list) # Expecting [2,3]
# ValueError: too many values to unpack (expected 2)
是的,我可以获取列表并删除第一个元素,但是是否有单行代码?
这个函数应该是通用的,比如应该支持两种场景:
aa, whole_list = foo()
aa, first_elem, rest_of_the_list = foo()
请您参考如下方法:
是的,有。您可以对 b_list 使用解包:
aa, (_, *b_list) = bar()
- 请注意,这仅适用于 python 3。
