在python中对两个列表元素进行递归求和

在python中对两个列表元素进行递归求和,python,arrays,list,recursion,Python,Arrays,List,Recursion,是否可以对两个列表逐元素递归求和,然后返回新列表 def sumListElements(listOne, listTwo): list = [] i = 0 while i < len(listOne): list.append(listOne[i] + listTwo[i]) i += 1 return list 结果 R = [4, 6, 8] 在此处使用zip()和map(): R = map(sum, zip(a

是否可以对两个列表逐元素递归求和,然后返回新列表

def sumListElements(listOne, listTwo):
    list = []
    i = 0
    while i < len(listOne):
        list.append(listOne[i] + listTwo[i])
        i += 1
    return list
结果

R = [4, 6, 8]
在此处使用
zip()
map()

R = map(sum, zip(a, b))
演示:

为了与Python 3兼容,请用列表替换
map()

[sum(z) for z in zip(a, b)]
在此处使用
zip()
map()

R = map(sum, zip(a, b))
演示:

为了与Python 3兼容,请用列表替换
map()

[sum(z) for z in zip(a, b)]

函数,它获取n个列表,并将第i个索引中的每个元素与其他元素一起添加:

from itertools import izip_longest

def sum_elements(*lists):
    return map(sum, izip_longest(*lists, fillvalue=0))
与您的数据一起显示:

>>> sum_elements([1, 2, 3], [3, 4, 5])
[4, 6, 8]
长度不均匀的列表仍然有一个很好的结果:

>>> sum_elements([1, 2, 3], [3, 4, 5, 6])
[4, 6, 8, 6]
它可以包含任意数量的列表:

>>> sum_elements([1, 2, 3], [3, 4, 5, 6], [8,9])
[12, 15, 8, 6]

函数,它获取n个列表,并将第i个索引中的每个元素与其他元素一起添加:

from itertools import izip_longest

def sum_elements(*lists):
    return map(sum, izip_longest(*lists, fillvalue=0))
与您的数据一起显示:

>>> sum_elements([1, 2, 3], [3, 4, 5])
[4, 6, 8]
长度不均匀的列表仍然有一个很好的结果:

>>> sum_elements([1, 2, 3], [3, 4, 5, 6])
[4, 6, 8, 6]
它可以包含任意数量的列表:

>>> sum_elements([1, 2, 3], [3, 4, 5, 6], [8,9])
[12, 15, 8, 6]

这是一个递归实现

def recursive_sum(l1, l2, idx = 0):
    if idx < min(len(l1), len(l2)):
        return [l1[idx] + l2[idx]] + recursive_sum(l1, l2, idx + 1)
    else:
        return []

print recursive_sum([1, 2, 3], [4, 5, 6])
# [5, 7, 9]
def递归_和(l1,l2,idx=0):
如果idx

def recursive_sum(l1,l2,result=None,idx=0):
如果结果为无:
结果=[]
如果idx
这里是一个递归实现

def recursive_sum(l1, l2, idx = 0):
    if idx < min(len(l1), len(l2)):
        return [l1[idx] + l2[idx]] + recursive_sum(l1, l2, idx + 1)
    else:
        return []

print recursive_sum([1, 2, 3], [4, 5, 6])
# [5, 7, 9]
def递归_和(l1,l2,idx=0):
如果idx

def recursive_sum(l1,l2,result=None,idx=0):
如果结果为无:
结果=[]
如果idx
为什么是递归的?这里没有嵌套结构。为什么是递归的?这里没有嵌套结构。所以,这是唯一的方法?不,这是最有效的方法。我喜欢有效的方法,但我必须递归地写它,就像@thefourtheye完成一样。所以,这是唯一的方法?不,这是最有效的方法。我喜欢有效的方法,但我必须递归地写它,就像@thefourtheye's done一样。@Xerath确保在你的家庭作业中找到这个答案…@Xerath确保在你的家庭作业中找到这个答案。。。