[prev in list] [next in list] [prev in thread] [next in thread]
List: python-list
Subject: Re: Use cases for del
From: Scott David Daniels <Scott.Daniels () Acm ! Org>
Date: 2005-07-08 15:21:53
Message-ID: 42ce923f () nntp0 ! pdx ! net
[Download RAW message or body]
Ron Adam wrote:
> Here's something interesting:
>
> import time
>
> x = None
> t = time.time()
> for i in range(1000000):
> if x==None:
> pass
> print 'None:',time.time()-t
>
> x = 'to-end'
> t = time.time()
> for i in range(1000000):
> if x=='to-end':
> pass
> print 'String:',time.time()-t
>
> >>>
> None: 0.46799993515
> String: 0.360000133514
>
>
> Of course the difference this would make on a single call in practically
> Nill.
>
> Anyway, time to call it a night so tomorrow I don't make anymore silly
> mistakes on comp.lang.python. :)
>
> Cheers,
> Ron
>
Try this:
import time
def timed(number):
nreps = ereps = [None] * number
t0 = time.time()
x = None
for i in ereps:
if x == None:
pass
x = 'to-' + 'end' # make sure equal string, not identical string
for i in nreps:
if x == None:
pass
t1 = time.time()
for i in ereps:
if x == 'to-end':
pass
x = None
for i in nreps:
if x == 'to-end':
pass
t2 = time.time()
x = None
for i in ereps:
if x is None:
pass
x = 'to-end' # magic unnecessary here.
for i in nreps:
if x is None: pass
return t0, t1, t2, time.time()
t0, t1, t2, t3 = timed(1000000)
print '== None:', t1 - t0
print '== String:', t2 - t1
print 'is None:', t3 - t2
===========================
== None: 0.578000068665
== String: 0.594000101089
is None: 0.31200003624
Testing for None should be an is-test (not just for speed). In
older pythons the == result wasn't necessarily same as is-test.
This made sense to me after figuring out NULL in database stuff.
is-test will always work for None despite the other half. Not
so for bogus objects like:
>>> class WildCard(object):
def __eq__(self, other):
return True
>>> (WildCard() is None), (None is WildCard())
(False, False)
>>> (WildCard() == None), (None == WildCard())
(True, True)
--Scott David Daniels
Scott.Daniels@Acm.Org
--
http://mail.python.org/mailman/listinfo/python-list
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic