Efficient mechanism for str.startswith on a set.
Brian Cole
brianc at temple.edu
Tue Jan 10 09:48:54 EST 2006
I need to iterate through a file, checking whether each line
'startswith()' a string that belongs to a set.
Normally, the most efficient way I would do this would be:
strs=set(['foo','bar'])
for line in file:
if line.strip() in strs:
print line
However, for this case I need to do a startswith like this:
for line in file:
for s in strs:
if line.startswith(s):
print line
This is obviously the least efficient manner to do this as I'll always
be iterating over the entire 'strs'. I know I could make a binary tree
out of 'strs' but that's a little more work that don't have time to do
today. I know there should be something out there if I just ask nicely
enough.
Thanks ahead of time.
-Brian
More information about the Python-list
mailing list