doug shawhan wrote: > *sigh* Ignore folks. I had forgotten about .has_key().
Actually, you don't even need that, simply write: if record[0] in dict: # Do your thing. But don't use "dict" as a variable name, it's a builtin function name. > > > > On Dec 28, 2007 11:22 AM, doug shawhan <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > I'm building a dictionary from a list with ~ 1M records. > > Each record in the list is itself a list. > Each record in the list has a line number, (index 0) which I wish > to use as a dictionary key. > > The problem: It is possible for two different records in the list > to share this line number. If they do, I want to append the record > to the value in the dictionary. > > The obvious (lazy) method of searching for doubled lines requires > building and parsing a key list for every record. There must be a > better way! > > dict = {} > for record in list > if record[0] in dict.keys (): > dict[ record[0] ].append( record ) > else: > dict[ record[0] ] = [record] > > Once you get ~ 80,000 records it starts slowing down pretty badly > (I would too ...). > > Here's hoping there is a really fast, pythonic way of doing this! > > > ------------------------------------------------------------------------ > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor