Pat Martin wrote: > So should we always use sets or dictionaries if possible? Are these more > efficient because of not keeping track of their position?
Not always. If you want to know how often one entry/char occurs in a linear storage like a list, a string, or a file, then you can loop over the data: num_c = some_string.count(c) # the loop is hidden in the count() method pairs = (line.partition("=")[::2] for line in file) value = next(value for key, value in pairs if key == wanted_key) However, if you expect frequent similar questions go with a lookup table: freq = Counter(some_string) for c in strings.ascii_lowercase: print(c, "occurs", freq[c], "times") lookup = dict(pairs) for key in wanted_keys: print(key, "is", lookup.get(key, "unknown")) Before you start measure if the effort may be worthwhile, i. e. whether the linear approach causes a relevant delay. When you're done doublecheck if you got the desired improvement, i. e. whether you optimised the right place. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor