On Nov 2, 1:00 am, Dennis Lee Bieber <[EMAIL PROTECTED]> wrote: > On Sun, 2 Nov 2008 00:25:13 -0700 (PDT), dineshv > <[EMAIL PROTECTED]> declaimed the following in comp.lang.python: > > > I want to see if there is an alternative method for fast list > > traversal. The code is very simple: > > > dict_long_lists = defaultdict(list) > > for long_list in dict_long_lists.itervalues() > > for element in long_list: > > array_a[element] = m + n + p # m,n,p > > are variable numbers > > > The long_list's are read from a defaultdict(list) dictionary and so > > don't need initializing. The elements of long_list are integers and > > ordered (sorted before placing in dictionary). There are > 20,000 > > Out of curiosity, what code is used to put the values in? The sample > you give above is creating an empty dictionary rigged, if I understand > the help file, to automatically give an empty list if a non-existent key > is requested. But in your loop, there is no possibility of a > non-existent key being requested -- .itervalues() will only traverse > over real data (ie; keys that DO exist in the dictionary). > > And, if you are sorting a list "before placing in dictionary", why > need the defaultdict()? A plain > > dict[key] = presorted_list_of_integers > > would be sufficient. > > Or do you mean to imply that you are using something like: > > thedefaultdict[key].append(single_value) > thedefaultdict[key].sort() > > EACH time you obtain another value from where-ever? If so, that's going > to be the biggest time sink... > > > What is the fastest way to traverse these long_list's sequentially > > from the beginning to the end? Maybe there is another data structure > > that can be used instead of a list. > > So far as I know, the list IS the fastest structure available for > sequential processing. > -- > Wulfraed Dennis Lee Bieber KD6MOG > [EMAIL PROTECTED] [EMAIL PROTECTED] > HTTP://wlfraed.home.netcom.com/ > (Bestiaria Support Staff: [EMAIL PROTECTED]) > HTTP://www.bestiaria.com/
dict_long_lists is a dictionary of lists and is NOT empty. Thank-you -- http://mail.python.org/mailman/listinfo/python-list