如何实现Python函数接收可变数量的重复参数集合?
实现可变数量(方向,步数)对的move函数
当然可以,利用Python的*args参数就能完美接收这种可变数量的成对参数。*args会把函数调用时传入的所有位置参数打包成一个元组,我们只需要在函数内部把这个元组按**(方向,步数)**的成对规则拆解即可。
示例实现
def move(*args): # 先检查参数数量是否为偶数,确保每组方向都对应步数 if len(args) % 2 != 0: raise ValueError("参数必须是成对的(方向,步数)组合") # 遍历拆解每一组方向和步数 for i in range(0, len(args), 2): direction = args[i] steps = args[i+1] # 这里替换为实际的移动逻辑 print(f"向{direction}移动{steps}步")
调用示例
# 传入3组(方向,步数) move('上', 5, '左', 3, '下', 2) # 输出: # 向上移动5步 # 向左移动3步 # 向下移动2步
更优雅的拆解方式
可以用iter和zip简化成对遍历的代码,避免手动处理索引:
def move(*args): if len(args) % 2 != 0: raise ValueError("参数必须是成对的(方向,步数)组合") # 将args转为迭代器,每次取两个元素自动配对 direction_steps = zip(*[iter(args)]*2) for direction, steps in direction_steps: print(f"向{direction}移动{steps}步")
内容的提问来源于stack exchange,提问作者Nate McCloud
相关产品推荐
相关产品推荐

