From: brabuhr@... Date: 2008-11-28T00:22:29+09:00 Subject: Re: Performance issues with large files -- ruby vs. python : On Thu, Nov 27, 2008 at 9:39 AM, sa 125 wrote: > The core processing is done through if statements > > #...code below is in loop: for row in csv... > > if not @main_hash.keys.member?(date) > @main_hash[date] = {} > @main_hash[date][company] = {} > @main_hash[date][company][prod] = {} > @main_hash[date][company][prod] = row_values > else > if not @main_hash[date].keys.member?(company) > @main_hash[date][company] = {} > @main_hash[date][company][prod] = {} > @main_hash[date][company][prod] = row_values > else > if not @main_hash[date][company].keys.member?(prod) > @main_hash[date][company][prod] = {} > @main_hash[date][company][prod] = row_values > end > end > end > > # loop ends unless main_hash[date] main_hash[date] = {} main_hash[date][company] = {} main_hash[date][company][prod] = row_values else unless main_hash[date][company] main_hash[date][company] = {} main_hash[date][company][prod] = row_values else unless main_hash[date][company][prod] main_hash[date][company][prod] = row_values end end end main_hash[date] ||= {} main_hash[date][company] ||= {} main_hash[date][company][prod] ||= row_values d = main_hash[date] ||= {} c = d[company] ||= {} p = c[prod] ||= row_values ((@main_hash[date] ||= {})[company] ||= {})[prod] ||= row_values