Python如何去掉函数返回值的外层多余括号,得到目标元素组合?
解决方法
首先要明确:Python 中[10,9,9,10], 2这种写法本身就是元组的语法糖,即便不写外层括号,它的本质也是二元元组,两个元素分别是列表[10,9,9,10]和整数2。你现在传入的参数是把这两个元素包在了一个外层列表里,所以reading的取值才会是[[10,9,9,10],2]。
根据你的使用场景可以选两种实现方案:
- 方案1:调整传参逻辑,直接把两个值作为独立参数传入
def name(list_val, num_val): # 直接返回两个值,本质就是返回你需要的元组 return list_val, num_val res = name([10,9,9,10], 2) print(res) # 打印结果:([10, 9, 9, 10], 2)
注:Python打印元组时默认会显示外层括号,这是标准输出格式,不影响变量的实际取值和使用。
- 方案2:不调整传参逻辑,在函数内部拆包外层列表
如果你必须保持name([[10,9,9,10],2])的调用形式,直接在返回时拆分外层列表即可:
def name(reading): # 拆分外层列表的两个元素,组成元组返回 return reading[0], reading[1] # 也可以简写为 return tuple(reading) res = name([[10,9,9,10],2]) print(res) # 打印结果:([10, 9, 9, 10], 2)
如果需要打印时不显示元组的外层括号,直接对返回的元组解包打印即可,不需要修改变量本身的取值:
print(*res, sep=', ') # 输出:[10, 9, 9, 10], 2
内容的提问来源于stack exchange,提问作者Toxrey
相关产品推荐
相关产品推荐

