bokr at oz.net
Wed Nov 30 23:41:26 CET 2005
On 30 Nov 2005 00:37:43 -0800, bonono at gmail.com 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 == refSymbol.strip():
>> priceNew.write(refSymbol.strip()+" "+showme)
>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
>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 in refSymbolSet:
It would probably be more robust to check for blank lines and showme missing fields
and symbol duplicates also.
More information about the Python-list