Перебор списка на основе элементов другого в python - PullRequest
0 голосов
/ 21 октября 2018

Есть много ответов об итерации, но я не нашел то, что хотел.Итак, вот ситуация: у меня есть 2 списка 2 разных длины.Но l1 может быть только <= l2 </p>

l1 = [2, 3, 1, 2, 2]
l2 = [12, 4, 5, 2, 9, 33, 5, 8, 4, 5, 1, 7, 3]
l3 = []

Я хочу написать функцию, которая возвращает:

l3 = [(l2[0] + l2[1], l2[2] + l2[3] + l2[4], l2[5], l3[6] + l3[7]...)]

Итак

if l1[0] == 2:
Add the value of the sum of (the 2 first values of l2) in l3
if l1[0] == 3:
Add the value of the sum of (the next 3 values of l2) in l3

Я пытался:

i = 0
for v in l1:
    for k in l2:
        sum(l2[i])
    i += 1

Но да, это не работает .. спасибо!

1 Ответ

0 голосов
/ 21 октября 2018
l1 = [2, 3, 1, 2, 2]
l2 = [12, 4, 5, 2, 9, 33, 5, 8, 4, 5, 1, 7, 3]
l3 = []

assert (len(l2) >= sum(l1))

i = 0
for e in l1:
    l3.append(sum(l2[i:i+e]))
    i += e

print (l3)
# [16, 16, 33, 13, 9]
...