Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: "Walter =?utf-8?q?D=C3=B6rwald?=" Newsgroups: de.comp.lang.python Subject: Re: [Python-de] strings zusammensetzen. Date: Tue, 29 Aug 2017 17:21:15 +0200 Lines: 50 Message-ID: References: <40c6ccec-4cbc-9614-dbdd-9e88cd1dccf0@gmx.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de EbZizJMEEc51VZlizD3kGwrn46/Voy9PHyCC6qR1+DgA== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org X-Virus-Scanned: Debian amavisd-new at rhein.livinglogic.de In-Reply-To: X-Mailer: MailMate (1.9.6r5347) X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.24 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: <40c6ccec-4cbc-9614-dbdd-9e88cd1dccf0@gmx.de> Xref: csiph.com de.comp.lang.python:4873 On 26 Aug 2017, at 13:29, Peter Otten wrote: > Tobias Herp wrote: > >>> d =3D "{base}{revision}{suffix}".format(base =3D a, >>> revision =3D b, >>> suffix =3D c) >> >> Wenn's denn unbedingt ein Template sein soll, w=C3=BCrde das bei mir=20 >> meistens >> wie folgt aussehen: >> >> d =3D '%(base)s%(revision)s%(suffix)s' % locals() >> > > Wurde schon erw=C3=A4hnt, dass ab 3.6 alternativ dazu auch > >>>> base, revision, suffix =3D "foo", "bar", "baz" >>>> f"{base}{revision}{suffix}" > 'foobarbaz' > > m=C3=B6glich ist? > > Das vermeidet ggf. das Erstellen eines tempor=C3=A4ren dicts. Das ist auch mit Abstand die schnellste Variante: Python 3.6.2 (default, Jul 26 2017, 16:42:24) Type 'copyright', 'credits' or 'license' for more information IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help. In [1] =E2=96=B6 base, revision, suffix =3D "foo", "bar", "baz" In [2] =E2=96=B6 %timeit base + revision + suffix 208 ns =C2=B1 0.532 ns per loop (mean =C2=B1 std. dev. of 7 runs, 1000000= loops=20 each) In [3] =E2=96=B6 %timeit '%s%s%s' % (base, revision, suffix) 315 ns =C2=B1 1.55 ns per loop (mean =C2=B1 std. dev. of 7 runs, 1000000 = loops=20 each) In [4] =E2=96=B6 %timeit '{}{}{}'.format(base, revision, suffix) 462 ns =C2=B1 1.23 ns per loop (mean =C2=B1 std. dev. of 7 runs, 1000000 = loops=20 each) In [5] =E2=96=B6 %timeit f'{base}{revision}{suffix}' 14.6 ns =C2=B1 0.00911 ns per loop (mean =C2=B1 std. dev. of 7 runs, 1000= 00000=20 loops each) Servus, Walter