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 - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor