python 在一个循环中迭代具有两个不同滑动窗口的两个列表

92dk7w1h  于 2022-11-21  发布在  Python
关注(0)|答案(2)|浏览(131)

我有两个非常大的列表,我想用一个循环来迭代其中两个列表,用不同的滑动窗口。这可能吗?如果不可能,最好的方法是什么?
例如,我有A和B,我想要一个循环,它提供列表B的滑动窗口2和列表A的大小为3的滑动窗口的总和。

A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13]
B = [-1,2, 3, 14, 51, 16, 7, 18 ]

A = [1,4,7,10]中大小为3的滑动窗口
大小为2的滑动窗口(B = [-1,3,5,7]
输出:A + B = [0, 7, 12, 17]

dldeef67

dldeef671#

您可以将其写为切片上的Map,如下所示:

from operator import add
res = map(add, A[::3], B[::2])

另一个选项是使用列表解析/生成器表达式:

res = [a + b for a, b in zip(A[::3], B[::2])]
dhxwm5r4

dhxwm5r42#

我发现我的回答是这样的:对于那些将来可能遇到同样问题人:

w1 = 3
w2 = 2
t = []
for i in range(0, 12, w1):
    index_w = int(i/w1)
    sum_temp = A[i]+ B[w2*index_w]
    t.append(sum_temp)

相关问题