Сначала всё выглядело просто:
sum(map(operator.mul, vec1, vec2))
Но не все знают, что встроенная
map может принимать 2 и более итерируемых объектов как источники аргументов для функции, которую она применяетС Python 3.12 добавился аргумент
strict, и стало логично его использоватьОднако из-за zip приходится “распаковывать” кортежи — поэтому тут нужен
itertools.starmap, а не обычный map.Наконец, в Python 3.14 всё снова упростилось:
sum(map(operator.mul, vec1, vec2, strict=True))
Встроенная
map получает именованный аргумент strict, как и zip 😍👉 @PythonPortal
