Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.095 X-Spam-Evidence: '*H*': 0.81; '*S*': 0.00; 'indeed,': 0.07; 'magnitude': 0.09; 'magnitude.': 0.16; 'subject:vs.': 0.16; 'wrote:': 0.18; '>>>': 0.18; 'header:In-Reply-To:1': 0.22; 'faster,': 0.23; 'formatting': 0.23; 'numeric': 0.23; 'stefan': 0.24; 'bit': 0.28; 'seem': 0.30; "isn't": 0.33; 'header:User- Agent:1': 0.33; 'to:addr:python-list': 0.34; 'loop': 0.34; 'surprised': 0.34; 'skip:" 20': 0.35; 'charset:us-ascii': 0.37; 'skip:" 10': 0.37; 'but': 0.37; 'received:org': 0.38; "it's": 0.40; 'to:addr:python.org': 0.40; 'difference': 0.40; 'your': 0.61; 'order': 0.62; 'choice.': 0.64; 'real-world': 0.64; 'deal,': 0.67; 'difference.': 0.84; 'timings': 0.84 Date: Tue, 3 Jan 2012 21:53:14 +0100 From: Stefan Krah To: python-list@python.org Subject: Re: .format vs. % References: <5642862.375.1325355574622.JavaMail.geo-discussion-forums@vbbhx10> <4EFF559E.1050408@gmail.com> <4f027b79$0$29880$c3e8da3$5496439d@news.astraweb.com> <4F02DE94.8000506@gmail.com> <9mh490FbvuU2@mid.individual.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9mh490FbvuU2@mid.individual.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 31 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1325623995 news.xs4all.nl 6878 [2001:888:2000:d::a6]:60011 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:18453 Neil Cerutti wrote: > On 2012-01-03, Stefan Krah wrote: > > $ ./python -m timeit -n 1000000 '"%s" % 7.928137192' > > 1000000 loops, best of 3: 0.0164 usec per loop > > % is faster, but not by an order of magnitude. > > On my machine: > > C:\WINDOWS>python -m timeit -n 1000000 -s "n=7.92" "'%s' % n" > 1000000 loops, best of 3: 0.965 usec per loop > > C:\WINDOWS>python -m timeit -n 1000000 -s "n=7.92" "'{}'.format(n)" > 1000000 loops, best of 3: 1.17 usec per loop Indeed, I was a bit surprised by the magnitude of the difference. Your timings seem to be in line with the difference seen in the real-world benchmark. It isn't a big deal, considering that the numeric formatting functions have to so many options, e.g: >>> "{:020,}".format(712312312.2) '00,000,712,312,312.2' Still, it's nice to have a faster choice. Stefan Krah