Python 的向量和

Vector Sum With Python

写一个函数vectorSum(l1, l2),取两个数字列表,把l2中的数字加到l1上,一个是one.If l2比l1短,然后l2结束后从头开始循环.如果 l2 比 l1 长,则只考虑与 l1 的长度匹配的 l2 的第一部分。您的函数必须 return 汇总结果列表。例如,

vectorSum([1,2,3,4,5], [1,2,3]) returns [2,4,6,5,7] because:Write 一个名为 `vectorSum(l1, l2)` 的函数需要两个

列出数字并将 l2 中的数字一一添加到 l1 上。

如果l2比l1短,则l2从头开始循环

一旦结束。如果l2比l1长,那么只有第一部分

of l2 匹配 l1 的长度被考虑。你的函数

必须return汇总结果列表。例如,

vectorSum([1,2,3,4,5], [1,2,3]) returns [2,4,6,5,7] 因为:

1,2,3,4,5

+ + + + +

1,2,3,1,2 -> 这里l2从头开始回收

=====

2,4,6,5,7

vectorSum([1,2,3], [1,2,3,4,5]) returns [2,4,6] 因为:

1,2,3

+ + +

1,2,3,4,5 -> 这里只使用l2的前3项

===

2,4,6

vectorSum([1,2,3,4,5], [1,2,1,2,1]) returns [2,4,4,6,6]

1,2,3,4,5

您可以假设 l1 和 l2 不为空。

vectorSum([1,2,3,4,5], [1,2,3]) returns [2,4,6,5,7] 因为:

1,2,3,4,5

+

+

+ 

  + 

    + 

1,2,3,1,2 -> 这里l2从头开始回收 = = = = = 2,4,6,5,7

vectorSum([1,2,3], [1,2,3,4,5]) returns [2,4,6] 因为:

1,2,3

+

+

+ 

1,2,3,4,5 -> 这里只使用l2的前3项 = = = 2,4,6

vectorSum([1,2,3,4,5], [1,2,1,2,1]) returns [2,4,4,6,6] 因为:

1,2,3,4,5

+

+

+ 

  + 

    + 

1,2,1,2,1 -> 这里,l2 的长度与 l1 的长度匹配 = = = = = 2,4,4,6,6

使用列表理解迭代第一个列表的长度,并使用第一个列表的长度除以第二个列表的长度的余数作为第二个列表的索引,有效地为我们提供了如果第二个列表比第一个列表短,则循环第二个列表。

len(l1) > len(l2)

>>> l1 = [1,2,3,4,5]
>>> l2 = [1,2,3]
>>> [l1[i] + l2[i%len(l2)] for i in range(len(l1))]
[2, 4, 6, 5, 7]

len(l1) < len(l2)

>>> l1 = [1,2,3]     
>>> l2 = [1,2,3,4,5]
>>> [l1[i] + l2[i%len(l2)] for i in range(len(l1))]
[2, 4, 6]

len(l1) == len(l2)

>>> l1 = [1,2,3,4,5]
>>> l2 = [1,2,1,2,1]
>>> [l1[i] + l2[i%len(l2)] for i in range(len(l1))]
[2, 4, 4, 6, 6]