如何用Python递归函数计算两个等长列表同索引元素的和与差
Python递归实现等长列表同索引元素的和差计算
实现逻辑完全基于基础递归规则,没有用到复杂的内置函数,适合学习阶段参考:
- 递归终止条件:当两个输入列表都为空时,返回两个空列表作为结果的收尾
- 单次递归逻辑:每次取两个列表的第一个元素分别计算和与差,再对剩余的列表切片执行递归调用,最后把当前计算的结果拼接到递归返回的结果头部即可
完整实现代码
def calc_sum_diff(l1, l2): # 递归终止条件 if not l1 and not l2: return [], [] # 计算当前索引位置的和与差 current_sum = l1[0] + l2[0] current_diff = l1[0] - l2[0] # 递归处理剩余元素 rest_sum, rest_diff = calc_sum_diff(l1[1:], l2[1:]) # 拼接当前结果和递归返回的剩余结果 return [current_sum] + rest_sum, [current_diff] + rest_diff # 示例调用 l1 = [1,2,3] l2 = [7,8,9] l3, l4 = calc_sum_diff(l1, l2) # 输出结果 print("同索引元素求和结果:") print(f"l3 = {l3}") print("\n同索引元素求差结果:") print(f"l4 = {l4}")
运行输出
同索引元素求和结果: l3 = [8, 10, 12] 同索引元素求差结果: l4 = [-6, -6, -6]
如果后续需要兼容长度不一致的列表,可在函数开头增加长度校验逻辑,不符合要求时直接抛出提示即可。
内容的提问来源于stack exchange,提问作者User617290653251457439
相关产品推荐
相关产品推荐

