tgoop.com/PythonPortal/4362
Create:
Last Update:
Last Update:
С выходом Python 3.11, 3.12 и 3.14 изменилась даже такая простая вещь, как вычисление скалярного произведения векторов
Сначала всё выглядело просто:
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