2024-10-01 09:30:49 发布
网友
是否可以递归地将两个列表元素逐个相加,然后返回新列表?在
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]
函数获取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, 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]
或者
在此处使用zip()和{}:
zip()
R = map(sum, zip(a, b))
演示:
为了与Python 3兼容,请将map()替换为列表理解:
map()
[sum(z) for z in zip(a, b)]
函数获取n个列表,并将第i个索引中的每个元素与其他元素一起添加:
显示了您的数据:
^{2}$长度不均匀的列表仍然有很好的效果:
它可以有任意数量的列表:
这是一个递归实现
或者
^{2}$在此处使用}:
zip()
和{演示:
^{2}$为了与Python 3兼容,请将
map()
替换为列表理解:相关问题 更多 >
编程相关推荐