Python返回时如何解包?

比如

a = [(1,2,3), (1,2)]

def foo(*args):
    return args[0]+1, args[1:]
    
b = list(map(foo, a)) 

例子希望b能是[(2,2,3), (2,2)],但是args[1:]是一个tuple,而且也无法用*解包。
应该如何实现?(不使用循环取出实现的话)

阅读 3.3k
2 个回答
from itertools import starmap

a = [(1,2,3), (1,2)]

def foo(*args):
    return (args[0]+1,) + args[1:]
    
b = list(starmap(foo, a))
a = [(1,2,3), (1,2)]
def foo(*args):
    return (args[0][0] + 1,) + args[0][1:]

b = list(map(foo, a)) # [(2,2,3), (2,2)]

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题