You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 lines
1.3 KiB

From: jeremy at cnri.reston.va.us (Jeremy Hylton)
Date: Fri, 30 Apr 1999 11:08:30 -0400 (EDT)
Subject: try vs. has_key()
In-Reply-To: <slrn7ii0vb.tdc.jepler@craie.inetnebr.com>
References: <aahzFAM4oJ.M7M@netcom.com>
<yWOT2.6007$8m5.9320@newsr1.twcny.rr.com>
<Pine.SUN.3.95-heb-2.07.990423140345.21577A-100000@sunset.ma.huji.ac.il>
<7g51q6$1pt$1@vvs.superst.iae.nl>
<aahzFAvFCz.3Lr@netcom.com>
<14119.8145.293039.667256@bitdiddle.cnri.reston.va.us>
<slrn7ii0vb.tdc.jepler@craie.inetnebr.com>
Message-ID: <14121.50708.131339.251436@bitdiddle.cnri.reston.va.us>
X-UID: 219
>>>>> "JE" == Jeff Epler <jepler at inetnebr.com> writes:
>>The following code would be correct:
>>
>> d={}
>> for word in words:
>> first_two = word[:2]
>> d[first_two]= temp = d.get(first_two, [])
>> temp.append(word)
JE> what about d[first_two] = d.get(first_two, [])+[word] ? Or is
JE> list construction and addition going to be enough more expensive
JE> than the function call to make this a lose as well?
Yeah. Concatenating two lists results in a new list being created
every time (and you're already creating a new list containing the
value of word). Two list allocs is definitely more expensive that an
append.
Jeremy