Вы можете использовать понимание списка и zip
:
[i*n for i, n in zip(range(1,8), l2)]
или itertools.starmap
и operator.mul
: (не забудьте импортировать их)
list(starmap(mul, zip(range(1,8), l2)))
Оба приведут к одному и тому же выводу:
from itertools import groupby, starmap, product
from operator import itemgetter, mul
l1 = range(1,8)
l2=[1, 4, 9, 16, 25, 36, 49]
new_list1 = [i*n for i, n in zip(l1, l2)]
new_list2 = list(starmap(mul, zip(l1, l2)))
print(new_list1)
print(new_list2)
Результаты:
[1, 8, 27, 64, 125, 216, 343]
[1, 8, 27, 64, 125, 216, 343]