Skip to main content
 首页 » 编程设计

python之如何在返回值中获取列表的一部分

2025年05月04日14傻小

我想在一个方法中返回多个值,包括一个列表。

以下工作正常:

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。