Ian Kelly wrote: > On Sun, Jan 23, 2011 at 2:34 PM, Christian Heimes <li...@cheimes.de> > wrote: >> your_set = set(your_list) >> >> if your_set.issuperset(set([A, B])) and your_set.isdisjoint(set([C, D])): > > if your_set.intersection([A, B, C, D]) == set([A, B]): > ...
You can avoid converting your_list to a set with (using 2.7/3.x notation) if {A, B, C, D}.intersection(your_list) == {A, B}: ... The items in your_list still have to be hashable, so the approach is not as general as if (all(required in your_list for required in (A, B)) and not any(forbidden in your_list for forbidden in (C, D))): ... or similar. Also, it's not as easy to understand, so don't forget the explaining comment if you use the set-based approach. Peter -- http://mail.python.org/mailman/listinfo/python-list