Сейчас мы узнаем, какой из вариантов форматирования строк работает быстрее остальных.
При помощи следующего нехитрого скрипта вы сможете произвести замеры:

#!/bin/bash
measure () {
local RES=$(python3.7 -m timeit -n 2000000 -s 'x=256' "$1" | cut -d ":" -f 2)
echo "$1 -> $RES"
}
measure 'str(x)'
measure 'f"{x}"'
measure '"%d" % x'
measure '"{0}".format(x)'
view raw py_strformat.sh hosted with ❤ by GitHub

На моей машине с Python 3.7.1 результаты получились следующие:

    str(x) ->  159 nsec per loop
f"{x}" -> 58.4 nsec per loop
"%d" % x -> 122 nsec per loop
"{0}".format(x) -> 218 nsec per loop

Невооруженным глазом заметно, что самыми быстрыми оказались форматные строки, а самым медленным — метод str.format().

Удачного форматирования.

Категории


На заметку
Зарегистрированные пользователи могут добавлять Видео.