如何在Python中不通过索引访问返回列表的所有元素?
在Python中如何不通过索引返回列表的所有元素?
当然可以实现,不用逐个写索引,不管列表长度多少都能自动返回所有元素,核心是利用Python的解包语法:
直接返回展开后的元素
你想要的类似return *result的效果,可以写成return *result,,代码示例:
def func(): result = [[1,2],[3,4]] return *result, # 等价于return result[0], result[1] # 调用示例 a, b = func() print(a) # 输出 [1,2] print(b) # 输出 [3,4]
这里的逗号是关键:*result会把列表的所有元素展开,加上逗号后Python会自动把这些元素打包成元组返回,和你手动写多个索引的效果完全一致,哪怕列表有100个元素也能自动处理。
另一种等价写法
也可以直接把列表转成元组返回,效果一样:
def func(): result = [[1,2],[3,4]] return tuple(result)
处理不确定长度的返回值
如果调用时不知道返回元素的数量,可以用*来接收所有返回值:
def func(): result = [[1,2],[3,4],[5,6]] return *result, *all_elements = func() print(all_elements) # 输出 ([1,2], [3,4], [5,6])
或者直接遍历返回的元组:
for item in func(): print(item)
内容的提问来源于stack exchange,提问作者Eusto
相关产品推荐
相关产品推荐

