Yes, my notice is half valid. The is necessary for the actions, not for storing. Anyway, not a big difference in efficiency. :-) I mean, adding to set works with a builtin "if" that is slightly faster than an interpreted if line, and anyway, it will be executed.

        seenCategories.add(cat.title());
        if not cat.title() in seenCategories:
             # do something with this category