On 1 July 2010 20:15, Greg Landrum <[email protected]> wrote: > On Thu, Jul 1, 2010 at 9:01 PM, Noel O'Boyle <[email protected]> wrote: >>> >>> I think what you want is something like the following: >>> >>> suppl1 = Chem.SDMolSupplier('file1.sdf') >>> suppl2 = Chem.SDMolSupplier('file2.sdf') >>> >>> for mol1 in suppl1: >>> mol2 = suppl2.next() >>> # do something with the two molecules >> >> Maybe "for mol1, mol2 in zip(suppl1, suppl2):" ? >> > > That's a really nice and clean way of spelling it, but a bit of a > disaster when the files are large: zip(a,b) creates the whole joined > list at once, it's not a generator (at least with python 2.5). > > What this means to those of you who don't get excited about these > things is that Noel's form reads all the molecules from both suppliers > into memory and then loops over them. The form I originally proposed > only has two molecules in memory at a time.
Two molecules in memory, eh? I raise you the complicated itertools module: import itertools for mol1, mol2, in itertools.izip(suppl1, suppl2): > Best Regards, > -greg > ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Rdkit-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

