On 30 Nov 2005 00:37:43 -0800, [EMAIL PROTECTED] wrote: > >viewcharts wrote: >> I am reading two text files comparing the values in one to the other, >> this requires two loops. The problem is that when the inner loop is >> finished, it never goes back into the loop. Any suggestions? >> >> >> for refSymbol in symbols.readlines(): >> for lookupSymbol in myfile.readlines(): >> showme = lookupSymbol.split('\t') >> if showme[3] == refSymbol.strip(): >> priceNew.write(refSymbol.strip()+" "+showme[10]) >As another poster said, you have "used up" the inner iterable in the >first round, it is an iterable, just not like a list where you can use >multiple times. > >Either turn it into a list(so you can reuse it) or better yet, turn it >into a dict which would speed up the matching process. Either way, it >better be done outside of the outer loop. > Yes, and unless there is an ordering requirement that can't be ignored or achieved by sorting afterwards, symbols seems like it could be a set. E.g., (untested)
refSymbolSet = set(refSymbol.strip() for refSymbol in symbols) for showme in (lookupSymbol.split('\t') for lookupSymbol in myfile): if showme[3] in refSymbolSet: priceNew.write(showme[3]+" "+showme[10]) It would probably be more robust to check for blank lines and showme missing fields and symbol duplicates also. Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list