6.11. Case Study: Str Concat
6.11.1. Environment
Date: 2026-05-19
Python: 3.14.5
IPython: 9.13.0
System: macOS 26.5
Computer: MacBook M3 Max
CPU: 16 cores (12 performance and 4 efficiency) / 3nm
RAM: 128 GB RAM LPDDR5
6.11.2. SetUp
>>> firstname = 'Alice'
>>> lastname = 'Apricot'
6.11.3. F-string
>>> #
... %%timeit -n 1000 -r 1000
... f'{firstname} {lastname}'
...
37.4 ns ± 3.34 ns per loop (mean ± std. dev. of 1000 runs, 1000 loops each)
6.11.4. str.format()
>>> #
... %%timeit -n 1000 -r 1000
... '{} {}'.format(firstname, lastname)
...
83.2 ns ± 3.9 ns per loop (mean ± std. dev. of 1000 runs, 1000 loops each)
>>> #
... %%timeit -n 1000 -r 1000
... '{0} {1}'.format(firstname, lastname)
...
91.5 ns ± 5.06 ns per loop (mean ± std. dev. of 1000 runs, 1000 loops each)
>>> #
... %%timeit -n 1000 -r 1000
... '{fname} {lname}'.format(fname=firstname, lname=lastname)
...
169 ns ± 6.23 ns per loop (mean ± std. dev. of 1000 runs, 1000 loops each)
6.11.5. Add Operator
>>> #
... %%timeit -n 1000 -r 1000
... firstname + ' ' + lastname
...
39.3 ns ± 2.89 ns per loop (mean ± std. dev. of 1000 runs, 1000 loops each)
6.11.6. Mod Operator
>>> #
... %%timeit -n 1000 -r 1000
... '%s %s' % (firstname, lastname)
...
46.8 ns ± 3.3 ns per loop (mean ± std. dev. of 1000 runs, 1000 loops each)
>>> #
... %%timeit -n 1000 -r 1000
... '%(fname)s %(lname)s' % {'fname': firstname, 'lname': lastname}
...
139 ns ± 5.55 ns per loop (mean ± std. dev. of 1000 runs, 1000 loops each)